hibernate双向 一对多映射 :
双向一对多关联 ,实际上是 “一对多” 与 “多对一” 关联组合 .
也就是说必须在主控配置单向一对多关系的基础上,在被控方配置与其对应的多对一关系.
(一个地址住多个人 )
<mapping resource="com/pojo/Myuser.hbm.xml"/>
<mapping resource="com/pojo/Myaddress.hbm.xml"/>
Myaddress.hbm.xml :
<hibernate-mapping>
<class name="com.pojo.Myaddress" table="myaddress">
<id name="id" column="addressid" type="int">
<generator class="increment"></generator>
</id>
<property name="address" column="address" type="string"></property>
<set name="user" cascade="save-update" inverse="true">
<key column="addressid" not-null="true"></key>
<one-to-many class="com.pojo.Myuser"/>
</set>
</class>
</hibernate-mapping>
Myuser.hbm.xml :
<hibernate-mapping>
<class name="com.pojo.Myuser" table="myuser">
<id name="id" column="userid" type="int">
<generator class="increment"></generator>
</id>
<property name="name" column="name" type="string"></property>
<many-to-one
name="address"
column="addressid"
class="com.pojo.Myaddress"
cascade="save-update"
not-null="true"><!-- 联级保存和更新-->
</many-to-one>
</class>
</hibernate-mapping>
Myuser类 的属性 :
private int id;
private String name;
private Myaddress address;
Myaddress类的属性 :
private int id;
private String address;
private Set user = new HashSet();
测试 :
Session se = this.getSession();
System.out.println(se);
Transaction tr = se.beginTransaction();
Myaddress ad1 = new Myaddress();
ad1.setAddress("湘乡");
Myuser m = new Myuser("koo");
Myuser m1 = new Myuser("jade");
m.setAddress(ad1);
m1.setAddress(ad1);
ad1.getUser().add(m);
ad1.getUser().add(m1);
se.save(ad1);
tr.commit();
se.close();
分享到:
相关推荐
**标题:“Hibernate双向一对多经典实例”** 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者能够用面向对象的方式处理数据。本实例将聚焦于Hibernate中的一对多关系...
在Java的持久化框架Hibernate中,双向一对多关联是一种常见的数据模型关系,它涉及到两个实体类,一个实体可以有多个另一个实体的实例。本示例将深入探讨如何使用Hibernate进行双向一对多关系的增删查改操作。 首先...
在Java的持久化框架Hibernate中,双向一对多关联映射是一种常见的关系数据库模型与对象模型之间的映射方式。这种映射允许在一个实体类中存在多个另一个实体类的实例,而在另一个实体类中也可能存在对第一个实体类的...
标题"Hibernate双向一对多"指的是Hibernate框架中的一个重要关系映射概念,即在一个实体类中,一个实例可以与多个另一个实体类的实例相关联,而在另一个实体类中,每个实例也可以关联到该实体类的一个实例。...
在Java的持久化框架Hibernate中,双向一对多关联映射是一种常见的关系映射方式,它模拟了数据库中的外键关联,使得一个实体可以拥有多个另一个实体的实例。在这个注解版的实现中,我们将深入探讨如何使用Hibernate的...
JPA中双向一对多实体Bean的属性配置,包括延迟加载,级联删除等
双向一对多配置 更关键的是,`<set>`标签被用来定义一个集合,这个集合包含了与当前`Orgnization`实例相关的多个`Orgnization`实例,即“一对多”关系。`<one-to-many>`标签内的`class`属性指定了集合元素的类型。...
**JPA 2 一对多双向关联关系** Java Persistence API(JPA)是Java平台上的一个标准,用于处理对象关系映射(ORM),使得开发者可以使用面向对象的方式操作数据库。在JPA中,一对多关联关系是常见的实体间关系类型...
双向一对多关联意味着两个实体之间都有引用,即用户类中可以有订单列表,而订单类中也可以有用户引用。 **详细知识点解释:** 1. **实体类(Entity Class)**:在Hibernate中,实体类代表数据库中的表,它们通过`@...
标题"hibernate一对多,多对一,一对多双向关联"指涉的是Hibernate框架中常见的关系映射概念。在数据库设计中,实体间的关系通常包括一对一(One-to-One)、一对多(One-to-Many)和多对一(Many-to-One)关系,而在...
// 双向一对多关系配置 @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) private List<Order> orders; // getters and setters } ``` Order类则会包含一个对User的引用: ...
2. 创建双向一对多关联,如“街道”和“区县”的双向关系。 3. 实现多对多关联,例如OA系统中项目和人员的对应关系管理。 在实体类中,我们可以使用注解或XML映射文件来定义关联。例如,在上述的“区县”和“街道”...
标题“Hibernate ORM - 一对多双向关联关系”指的是在数据库建模中,Hibernate ORM(对象关系映射)框架如何处理一个实体类(如User)与多个实体类(如Article)之间的关系。在这种关系中,一个用户可以拥有多个文章...
**JPA 双向一对多关系详解** 在Java Persistence API(JPA)中,数据建模是通过实体类和它们之间的关联来实现的。在实际的业务场景中,经常会出现两个实体之间存在一对多(One-to-Many)的关系,比如一个用户可以有...
2. **双向映射**:在双向一对多关系中,双方都能直接访问对方。例如,一个班级(One)可以有多个学生(Many),每个学生也知道其所属的班级。在Java实体类中,需要在两边都添加对应的引用,同时在映射文件或注解中...
- **注解配置**:在双向一对多关联中,一方使用`@ManyToOne`,另一方使用`@OneToMany`并设置`mappedBy`属性。对于多对一,一方用`@OneToOne`,另一方用`@OneToOne(mappedBy = "...")`。 - **XML配置**:需要在双方...
本篇文章将详细探讨三种常见的双向关联映射方式:双向多对多(BidirectionalManyToMany)、双向一对多(BidirectionalOneToMany)以及双向一对一(BidirectionalOneToOne),包括它们的概念、配置和实际应用。...
在MyBatis系列的第三部分,我们将深入探讨“一对多双向关联”的概念及其实现方法。 首先,理解“一对多”关联是关键。在数据库设计中,这种关系表示一个实体(如订单)可以与多个其他实体(如订单中的商品)相关联...
在这个“Hibernate一对多双向自身关联demo代码”中,我们将深入理解如何实现一个实体类与其自身进行一对多的双向关联。这种关联在实际应用中常见于例如用户的朋友关系、员工的上下级关系等场景。 首先,让我们了解...