Java 如何使用<;加入>;标签?
我需要将一个类映射到两个表(都有多列主键)。假设TABLE1有id1、id2、id3,TABLE2有id1、id2作为主键。现在,在编写映射文件时,我将执行以下操作:Java 如何使用<;加入>;标签?,java,hibernate,join,hibernate-mapping,composite-primary-key,Java,Hibernate,Join,Hibernate Mapping,Composite Primary Key,我需要将一个类映射到两个表(都有多列主键)。假设TABLE1有id1、id2、id3,TABLE2有id1、id2作为主键。现在,在编写映射文件时,我将执行以下操作: <hibernate-mapping package="beans"> <class name="TABLE1Class" table="TABLE1"> <composite-id name="table1PK" class="TABLE1PKClass"> <
<hibernate-mapping package="beans">
<class name="TABLE1Class" table="TABLE1">
<composite-id name="table1PK" class="TABLE1PKClass">
<key-many-to-one name="id1" class="ID1Class" column="id1"/>
<key-many-to-one name="id2" class="ID2Class" column="id2"/>
<key-many-to-one name="id3" class="ID3Class" column="id3"/>
</composite-id>
<property name="someProperty" type="integer" not-null="true" column="x"/>
<join table="TABLE2">
<key column="id1" />
<!-- <key column="id2"/> The join tag accepts only one key tag!!!
How do I map the second key??? -->
<property name="propertyFromTable2" type="float" not-null="true"/>
</join>
</class>
</hibernate-mapping>
正如您所看到的,join标记只接受一个key标记!如何映射第二个id?
亲切的问候,暴君
附言:圣诞快乐,新年快乐,富有成效;)
可能包含多个
元素:
<key>
<column name = "id1" />
<column name = "id2" />
<column name = "id3" />
</key>
Hi-axtavt,我按照您的说明进行了操作,解决了多重性问题,但由于我在表2中有两个ID(id1,id2),出现了另一个异常:“org.hibernate.MappingException:外键(FK:TABLE2[id1,id2])必须与引用的主键(表1[id3])具有相同的列数。”。我尝试提供此处所述的伪列(),但得到的结果是:“org.hibernate.MappingException:外键(FK:TABLE2[id1,id2,id3])必须与引用的主键(TABLE1[id3])具有相同的列数。”。有什么建议吗?@霸王嗨,好久不见了,你解决这个问题了吗?如果是,你能告诉我怎么做吗?现在也有同样的麻烦:)