好吧,我在休眠方面并不是那么先进,我尝试进行了很多搜索,发现了很多类似的问题,但没有一个真正适用于我的案例。我有一个表 TABLE1,它有一个索引“id”,另一个表作为索引(TABLE1_ID 和 NUMBER)。只有 TABLE1_ID 是外键,而 number 不引用任何特定内容
表 1 具有以下休眠映射
<class name="com.test.basic.BASICTABLE1"
entity-name="com.test.TABLE1" table="TABLE1"
dynamic-update="true" optimistic-lock="version">
<id name="id" type="long">
<column name="id" />
<generator class="native">
<param name="sequence">${table1_id.generator.sequence}</param>
</generator>
</id>
<version name="versionNumber" column="verno" generated="always"
access="field" />
<property name="column1" column="column1" type="string" length="19"
not-null="true" access="field" />
</class>
我不确定另一个表的映射应该是什么。我是通过以下方式做到的
<class name="com.test.basic.BASICTABLE2"
entity-name="com.test.TABLE2" table="table2"
dynamic-update="true" optimistic-lock="version">
<composite-id name="id" class="com.test.basic.TABLE1TABLE2Id" >
<key-property name="TABLE1_ID" column="TABLE1_ID" type="long" />
<key-property name="NUMBER" column="NUMBER" type="short"/>
</composite-id>
</class>
请注意,我在某处读到应该有一些中间映射后创建了类 TABLE1TABLE2Id。
我确定 TABLE2 映射有问题(我对休眠没有那么先进)但是在尝试安装应用程序时,我收到以下错误
Foreign key (TABLE1 [id]) must have same number of columns as the referenced primary key (TABLE2 [TABLE1_ID, NUMBER])
我感谢任何人的帮助谢谢:)