多くのJPA関連では、空のコレクションとの関係を初期化するのがベストプラクティスと考えられますか?例えば。上記の例でJPA関係マッピングを初期化するか、初期化しないか?
@Entity
public class Order {
@Id
private Integer id;
// should the line items be initialized with an empty array list or not?
@OneToMany(mappedBy="order")
List<LineItem> lineItems = new ArrayList<>();
}
は、空でArrayList
かどうかのデフォルト値とlineItems
を定義することが良いですか?長所と短所は何ですか?
この便利なコメントありがとうございます。 – cripox
しかし、JPAエンティティの場合は、_mutable_リストで初期化し、フィールドをプライベートにして、コレクションにパブリックゲッターを提供する必要があると主張します。このようにして、 'lineItems'は決して' null'ではないことを確信できます。現代のJVMはガベージコレクションではかなり良いので、空のリストを作成することについては心配しません。一般的な注意点として、コードをあらかじめ最適化しないでください! –
私は@StefanHaberlに同意します。エンティティフィールドを不変なコレクションで初期化するべきではありません。これにより、エンティティの新しいインスタンスが作成され、テストが困難になります。あなたがパフォーマンスについて心配しているなら、 '新しいHashSet <>(0)'(https://stackoverflow.com/questions/18076492/why-initialize-hashset0-to-zero)のようなものを試してみてください。 – csharpfolk