当前位置: 首页 > 知识库问答 >
问题:

使用不同列数Hibernate多对一映射

呼延俊风
2023-03-14

    +-------------------+
    | ID  LOB col1 col2 |
    +-------------------+


    +-----------------+
    | SK ID col3 col4 |
    +-----------------+

我已经尝试了表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>

上面不起作用。在获取记录时,它试图从表2中获取表1中根本不存在的LOB代码

共有1个答案

晁开宇
2023-03-14

假设table2.sk是对table1.ID的FK,并且没有具有相同ID的table1条目,您可以将映射编写为:

@ManyToOne
@JoinColumn(name = "ID", insertable = false, updatable = false)
private Class1 class1Obj;

如果有更多具有相同ID的table1行,映射将失败,因为一个子行将匹配到多个父行。

因此,对于正确的多对一关联,您需要一个到父列的惟一FK。

 类似资料:
  • 当我映射同一个实体时,就像这里回答的那样: Hibernate与同一实体的多对多关联 在“tbl_friends”表中,我有相同含义的行。例如,我有id=1的用户和id=2的用户。在“tbl_friends”表中,当他们作为朋友链接时,我有两行 使用Hibernate或JPA引用是否可以在一行(1-2或2-1)中建立这种关系?

  • 您好,我有多对多映射,在联接表中有额外的列。表结构如下所示。 关系如下 链接 我创建了如下POJO类 Vendor.java 学生。爪哇 测试。爪哇 供应商est.java 供应商学生测试PK。爪哇 Hibernate映射文件,如下所示 vendor.hbm.xml vendor\u student\u测试。hbm。xml 大学生hbm。xml 测验hbm。xml 我刚开始Hibernate,这是

  • 我有两个不同的表,Person表和Employee表。我需要这两者之间的一一对应。Employee表的emp_id引用Person表的PERSON_ID。我需要一些帮助来编写使用注释的映射 persons.java

  • 我有两个这样的等级: 和 我想使用hibernate持久化这两个类。字段messagesOfTypeA、messagesOfTypeB和messagesOfTypeC根据消息中的类型字段对消息对象进行分组。 如何使用XML hibernate映射映射MyClass和Message之间的一对多关系?(我正在使用Hibernate 3.6)

  • 下面的映射给出的错误为 从db.karateInvoiceDetail引用db.karateInvoice的外键的列数错误。应为1 想法是有一个表,它的组合键为(id、fiscalyear和companyId),而表的组合键为(seqNo、InvoiceId、InvoiceFiscalYear和InvoiceCompanyId)。

  • person.hbm.xml: employee.hbm.xml 如何从表的和中提取表的映射? 注意:表的是主键