Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用<;加入>;标签?_Java_Hibernate_Join_Hibernate Mapping_Composite Primary Key - Fatal编程技术网

Java 如何使用<;加入>;标签?

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"> <

我需要将一个类映射到两个表(都有多列主键)。假设TABLE1有id1、id2、id3,TABLE2有id1、id2作为主键。现在,在编写映射文件时,我将执行以下操作:

<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])具有相同的列数。”。有什么建议吗?@霸王嗨,好久不见了,你解决这个问题了吗?如果是,你能告诉我怎么做吗?现在也有同样的麻烦:)