1

@OneToMany の JavaDoc によると、「コレクション プロパティが Java ジェネリックを使用して定義されている」場合、targetEntityを指定する必要はありません。さらに、構築時にコレクション プロパティをインスタンス化する必要はありませんが、null のままにしておくことができます。例えば:

@OneToMany(mappedBy="student")
private Collection<Qualification> qualification;

ただし、ジェネリックと型の消去を理解したように、実行時にこれがコレクションであり、修飾のコレクションではないことがわかります。これは、ジェネリック型がここで既に消去されていることを理解しているためです。

これはどのように作動しますか?私は何が欠けていますか?

4

2 に答える 2

2

これを指摘してくれた Thomas W に感謝します。Method.getGenericReturnType()Field.getGenericType( )を使用して、リフレクションを使用してクラスのメソッドとフィールドからジェネリック型情報を取得できます。これにより、ここで何をする必要があるかを知るのに十分な情報が得られます。

于 2013-10-04T10:13:02.490 に答える
0

この注釈の conter-part がありません:

mappedBy="student"別のデータベーステーブルに「リンク」しているため、可能なクラスを定義しました。そして、そのテーブルにも Java-Binding があります。そのため、JPA は N テーブルからオブジェクトを作成し、それらをリストに追加しようとします。

アップデート

@DiscriminatorColumnJPA では、すべての継承されたクラスのテーブルを設定すると、と呼ばれるものがあります。conreete クラスごとに 1 つのテーブルを指定することもできます。

http://en.wikibooks.org/wiki/Java_Persistence/Inheritance

于 2013-10-04T09:29:25.283 に答える