java – Hibernate多对一映射与不同列数

前端之家收集整理的这篇文章主要介绍了java – Hibernate多对一映射与不同列数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
嗨,我有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中获取LOB代码,这在Table1中不存在

解决方法

假设table2.SK是一个FK到table1.ID,并且没有相同ID的table1条目,可以如下写入映射:
@ManyToOne
@JoinColumn(name = "ID",insertable = false,updatable = false)
private Class1 class1Obj;

如果有更多的table1行具有相同的ID,那么映射将失败,因为一个Child然后将被匹配到多个Parents.

因此,对于一个适当的多对一关联,您需要一个FK到父列,这是唯一的.

原文链接:https://www.f2er.com/java/124553.html

猜你在找的Java相关文章