JPAでいくつかの単純なテーブルを構築しようとしていますが、それらを機能させるのに問題があります。lookup、group、keyword、およびgroupkwの合計 4 つのテーブルがあります。
ルックアップテーブルにはId フィールドがあります。このlookup.idフィールドは、他のテーブルで外部キーとして使用されます。
テーブルグループでは、id列が主キーとしてlookupid列に結合されます。また、キーワードテーブルでは、id列が主キーとしてlookupid列に結合されます。
最後のテーブルはgroupkwテーブルで、 kwid、groupid、lookupidの3 つの列があります。kwidとlookupidは、表Keywordの列 idとlookupidにマップされます。groupidとlookupidは、テーブルgroupの列 "id" と "lookupid" にマップされます。
groupとkeywordについては、それらを表す注釈付きの Java クラスを作成しました。単体テストによると、正常に動作しています。しかし、テーブルgroupkwの場合、正しい注釈クラスを取得できません。
テーブルgroupkwのコードをいくつか書きました。
@NotNull
@ManyToOne
@JoinColumns({
@JoinColumn(name="kwid", referencedColumnName = "id", nullable = false),
@JoinColumn(name="lookupid", referencedColumnName = "lookupid", nullable = false)
})
public Keyword getKeyword() {
return keyword;
}
@NotNull
@ManyToOne
@JoinColumns({
@JoinColumn(name="groupid", referencedColumnName = "id", nullable = false),
@JoinColumn(name="lookupid", referencedColumnName = "lookupid",
nullable = false, insertable=false, updatable=false)
})
public Group getgroup() {
return group;
}
しかし、動作していないようです。EntityManagerFactory はgroupkwテーブルを作成できません。これがこのテーブルを実装する正しい方法なのか、それとも別の方法があるのか教えてください。