嗨,我有2个表如下
表格1:
+-------------------+ | ID LOB col1 col2 | +-------------------+
主键(ID和LOB)
表2:
+-----------------+ | SK ID col3 col4 | +-----------------+
主键(SK)
由于table1具有compositePrimaryKey(ID和LOB),但是table2没有与LOB相关的任何列,我需要从表2到表1中给出多个关系.我无法提供映射.
请帮忙.
编辑我已经尝试了表2的hibernate映射:
<many-to-one name="class1Obj" class="com.acs.enterprise.common.Class1" lazy="proxy" insert="false" update="false"> <column name="ID" /> <column name="LOB" /> </many-to-one>
解决方法
假设table2.SK是一个FK到table1.ID,并且没有相同ID的table1条目,可以如下写入映射:
@ManyToOne @JoinColumn(name = "ID",insertable = false,updatable = false) private Class1 class1Obj;
如果有更多的table1行具有相同的ID,那么映射将失败,因为一个Child然后将被匹配到多个Parents.
因此,对于一个适当的多对一关联,您需要一个FK到父列,这是唯一的.