所以我昨天问过这个问题,但我们的目标职位变了,问题是不同的:休眠/ JPA多对多的关系,通过一个连接表和复合键,唯一约束问题
Hibernate/JPA Collection of Elements with Many to Many relationship?
我想知道是否有可能创建将建模我所需关系的实体,以便在启动我的应用程序时Hibernate将创建我的模式。
我想要的关系是这样的:
的事情是,在加入表实际上可以包含不链接到任何元素行。该结构表示根据“类型”和“值”对对元素进行分类,并输入到此特定应用程序之外的系统中。
我希望能够做的是通过映射将元素Hibernate实体设置为包含类别列表,以便我可以实际查看我的元素属于哪个类别,以便hibernate创建表我。
这里是我到目前为止有:
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "ELEMENT_ELEMENTCATOGORY", joinColumns = {
@JoinColumn(name = "type", referencedColumnName = "type"),
@JoinColumn(name = "value", referencedColumnName = "value") })
@Column(name = "category")
public List<ElementCategory> getCategories() {
return categories;
}
但这大部分我想要的东西,它会创建如我上面的表中,究竟如何,我希望他们:在我的元素中的实体类这样的映射此有一点,有一个唯一约束添加到(类型,值)对的元素表中。我不希望这样做,因为多个元素可以具有相同的类型和值对,我需要能够停止开始创建唯一约束,但无法弄清楚如何使用当前映射,我可以这样做吗?我是否错过了多对多的关系?
我仍然认为你需要一个inverseJoinColumn来在你的连接表中包含ElementCategory的id。 – bvanvelsen 2012-02-10 13:04:50
难道这听起来更合乎逻辑,类型和价值是一个实体?所以这个类型的值实体是一个连接表的连接列。 – bvanvelsen 2012-02-10 13:11:30
这个ID暗含在我有一组元素类别的事实中,就像任何Set一样。正如我所说的,表格的设置是正确的,并且包括连接表中的“类别”和ElementCategory表格中的“id”之间的链接。 您是否认为反向连接会从元素表中移除唯一约束?我会试试看。 – Link19 2012-02-10 13:12:06