我正在尝试使用 JPA 构建一些简单的表,但我无法让它们正常工作。我总共有 4 个表:lookup、group、keyword和groupkw。
查找表有一个 Id 字段。这个lookup.id字段在其他表中用作外键。
在表group中,一个id列作为主键加入了lookupid列;在关键字表中,一个id列也作为主键加入了lookupid列。
最后一个表是groupkw表,它有三列:kwid、groupid和lookupid。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表。请让我知道这是实现此表的正确方法还是有其他方法可以做到这一点?