一对一关联映射原理:让两个实体的主键一样,这样就不需要加入多余的字段
例子:
package com.hibernate;
public class IdCard {
private int id;
private String cardNo;
set..get...省
}
package com.hibernate;
public class Person {
private int id;
private String name;
private IdCard idCard;
set..get...省
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.hibernate.IdCard" table="t_idCard">
<id name="id">
<generator class="native"/>
</id>
<property name="cardNo"/>
</class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.hibernate.Person" table="t_person">
<id name="id">
<!-- 采用foreign生成策略,forgeign会取得关联对象的标识 -->
<generator class="foreign">
<!-- property只关联对象 -->
<param name="property">idCard</param>
</generator>
</id>
<property name="name"/>
<!--
one-to-one指示hibernate如何加载其关联对象,默认根据主键加载
也就是拿到关系字段值,根据对端的主键来加载关联对象
constrained="true表示,当前主键(person的主键)还是一个外键
参照了对端的主键(IdCard的主键),也就是会生成外键约束语句
-->
<one-to-one name="idCard" constrained="true"/>
</class>
</hibernate-mapping>
分享到:
相关推荐
-- 注意:没有与Person的一对一映射配置,因为是单向关联 --> <!-- 其他属性映射 --> </class> </hibernate-mapping> ``` 这里的`one-to-one`标签定义了与`IdentityCard`的关联,并通过`foreign-key`属性指定了...
1. **一对一关联映射** - **主键关联**(Single-Table):在这种情况下,两个实体共享同一个主键。在映射文件中,我们使用`<one-to-one>`标签,并通过`constrained`属性来指定约束。例如,Person和IdCard的单向...
本资源主要探讨的是“hibernate一对一关联关系”。 一对一关联关系在现实世界中很常见,比如一个人只有一个身份证,或者一个公司的总部只有一个。在Hibernate中,设置一对一关联关系可以帮助我们更好地管理和操作...
2、一对一主键关联映射(单向关联 Person---->IdCard) 一对一关联通常用于表示两个实体之间存在着唯一对应的关系。在主键关联映射中,两个实体类共享相同的主键,以减少冗余字段。在 Hibernate 中,我们使用 `<one...
- 在一对一关联中,唯一外键关联是指在一个实体中定义了另一个实体的主键作为其字段,形成外键约束,确保了数据的一致性和完整性。 3. **双向关联与单向关联** - **单向关联**:只有一方知道另一方的存在,例如...
总结来说,Hibernate的双向一对一关联映射涉及两个实体类之间的相互引用,需要在每个实体类上使用`@OneToOne`注解,并通过`mappedBy`指定关联的方向。此外,主键共享是通过`@PrimaryKeyJoinColumn`注解实现的。理解...
- **<one-to-one>标签**:用于指定一对一关联关系。 - **一对一主键关联映射存储测试**:演示如何存储具有主键关联的一对一关系。 - **一对一主键关联映射加载测试**:演示如何加载具有主键关联的一对一关系的数据。...
这种关联通常用于两个类(如 Person 和 Idcard)之间,每个 Person 对应一个唯一的 Idcard。配置上,可以将一个类的主键作为另一个类的外键,确保一对一关系。 在实际编程中,我们可以通过 Hibernate 提供的方法...
- 单向一对一:在单向一对一关联中,一个实体(如`Person`)拥有一个唯一关联的实体(如`IDCard`),`Person`表中包含`IDCard`的外键。在Hibernate中,通过`<one-to-one>`标签并设置`foreign-key`属性来表示。 - ...
- **一对一主键关联映射**(双向关联Person <-> IdCard): - 需要在`idCard`的映射文件中加入`<one-to-one>`标签指向`Person`,以指示Hibernate如何加载`Person`对象。 - **一对一唯一外键关联映射**(单向关联...