gpt4 book ai didi

java - 使用外键关联的一对一映射 hibernate

转载 作者:行者123 更新时间:2023-11-30 21:55:35 26 4
gpt4 key购买 nike

我是 Hibernate 学习实体映射的新手,使用 hibernate 框架而不是注释,我使用 XML 映射实体

这里我有两个类 Employee 和 Address [Address 是目标类,Employee 是源类,即 Employee 表将具有引用 Address 表主键的外键列]

class Employee{
String name;
int id;
Address addr;
//getter and setter methods
}

class Address{
String state;
String city
}

mapping.hbm.xml 文件:-

<hibernate-mapping>
<class name="Employee" table="emp">
<id name="id" column="id">
<generator class="assigned"/>
</id>
<property name="name" column="emp_name"/>
<one-to-one name="addr" class="Address" foreign-key="addr_id" cascade="all"/>
</class>

<!--mapping for Address Entity-->
<class name="Address" table="address>
<property name="city"/>
<property name"state"/>
</class>
</hibernate-mapping>

注意:-我在表级别使用 MySQL 我没有向员工表添加外键约束

我的问题是在尝试保存员工实体 addr_id 值时未存储在员工表中如何解决此问题。在 web 中,大多数事情都使用注释或共享主键。如何解决此问题请帮助我

最佳答案

改变你的映射。您需要完全限定类名并指示连接列,即Employee的PK,列id

员工

<class name="Employee" table="emp">
<id name="id" column="id">
<generator class="assigned"/>

地址实体必须引用员工的 PK,在您的情况下为 id:

 <one-to-one name="addr" class="my.package.Employee"
unique="true" not-null="true" cascade="all"/>

关于java - 使用外键关联的一对一映射 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45300787/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com