加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 16:43:06 所属栏目:Java 来源:网络整理
导读:嗨,我有2个表如下 表格1: +-------------------+ | ID LOB col1 col2 | +-------------------+ 主键(ID和LOB) 表2: +-----------------+ | SK ID col3 col4 | +-----------------+ 主键(SK) 由于table1具有compositePrimaryKey(ID和LOB),但是table2没有与L
嗨,我有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到父列,这是唯一的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读