2016-06-19 1 views
1

この例では、エンティティに@OneToMany関係がある場合、http://www.vogella.com/tutorials/JavaPersistenceAPI/article.html#jpaintro_entitymanagerです。Java:エンティティ内のリストをnullまたは空のリストとして適切に初期化するもの

@OneToMany(mappedBy = "family") 
private final List<Person> members = new ArrayList<Person>(); 

私は自分のコード内のエンティティのリストを初期化しないために使用され、常にnullかどうかを確認する必要があります。リストは、このような宣言で初期化されます。だから私の質問です:リスト(関係)を宣言の空のリストとして初期化することは、正常に何をする必要があるのですか?なぜ ?私は現在、あなたが理想的に空またはnullとしてこのリストを維持するかどうか、あなたのアプリケーションロジックに基づいて決定する必要があり

private final List<Person> members 
+0

JPA APIとは関係ありません。 JPAはOBJECTに何が存在しているかを維持します。これは基本的なJavaであり、完全に意見ベースのものです –

+1

一般に、 "null"と "空"は、jpaの動作が同じであっても、異なる意味を持ちます。 nullは初期化されていないことを意味し、空の場合はエントリがないことを意味します。だから、あなたがそれらの2つの異なる場合を処理する必要がある場合は、それはあなたが行くどのような問題ではない場合は、行うことができます。たとえば、nullは、必要なデータをロードしないことを意味し、nullをチェックした後にロードすることができます。 「空」とは、すでにデータをロードしていてもエントリがないことを意味します。 –

+0

"もしあなたがどうやって行かれても問題がなければ"ありがとう、私はそれを受け入れることができるように答え全体をコピー・ペーストすることができますか? – usertest

答えて

1

一般に、 "null"と "空"は、jpaの動作が同じであっても、異なる意味を持ちます。 nullは初期化されていないことを意味し、空の場合はエントリがないことを意味します。だから、あなたがそれらの2つの異なる場合を処理する必要がある場合は、それはあなたが行くどのような問題ではない場合は、行うことができます。たとえば、nullは、必要なデータをロードしないことを意味し、nullをチェックした後にロードすることができます。 「空」とはデータは既にロードされていますが、項目はありません。

0

をdoningよ何

。 nullの1つの欠点は、このリストがnullと予想されない場所では、アプリケーションコードに追加のヌルチェックを追加する必要があることです。 コレクションを使用してリストを初期化することをお勧めします。 EMPTY_LIST。

関連する問題