`

hibernate对映射xml的一对多的双向关联详解

 
阅读更多
<?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="cn.secn.com.model.StuIdCard">
		<id name="id">
			<generator class="native"></generator>
		</id>
		<property name="num"/>
		<!-- inverse="true" inverse是反转的意思;意思就说。在一对多的一方将表之间的关联关系交给对方去管理;
		并且给结方一个Key 重新命名字段的名称stuid;这里要和对方的维护字段名一致 
		 cascade="delete" :删除时级联删除子类的数据
		-->
		<set name="student" inverse="true" cascade="delete"> 
			<key>
				<column name="stuid" />
			</key>
			<one-to-many class="cn.secn.com.model.Student"/>
		</set>
		
    </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="cn.secn.com.model.Student" dynamic-update="true">
		<id name="id">
			<generator class="native"></generator>
		</id>		
		<property name="name"></property>
		<property name="age" />
		<property name="sex" />
		<property name="good" type="integer"></property>
		<!-- cascade="all"级联,当然以student为添加对象时,同时也会级联把studIdCard添加上 -->
		<!-- lazy="false" lazy:懒惰的意思;当懒惰时就不会把想studIdCard也发一个sql语句;默认是true;意思就是懒惰的 -->
		<!-- fetch="join" 把二个表通过join的方式连接到一起
			在这里lazy="false" fetch="join" 可以选择一个来使用:
			lazy="false" 不懒惰的;就把二个关联表的信息读取出来;select *  from A;select * from B;二个表是分开的
			fetch="join" 是把二张表关联起来读取出来:select a.* ,b.* from A a left outer join B b a.id=b.aid where a.id=?
			
			cascade属性:
				all : 所有情况下均进行关联操作。
				none:所有情况下均不进行关联操作。这是默认值。
				save-update:在执行save/update/saveOrUpdate时进行关联操作。
				delete:在执行delete时进行关联操作。 
		 -->
		<many-to-one name="student" column="stuid" cascade="save-update" fetch="join" ></many-to-one>
    </class>
	
</hibernate-mapping>

 

下面是源代码;自己加上hibernate和Junit的Jar包就可以调试;

不懂的可以留言交流.

 

分享到:
评论

相关推荐

    详解Hibernate一对一映射配置

    这里,Person和Address类共享同一主键`PERSON_ID`,表明它们一对一关联。 2. **单方外键关联(Unidirectional Foreign Key Join)** 在单方外键关联中,一个实体通过外键字段引用另一个实体。配置如下: ```xml ...

    Hibernate ORM - 一对多双向连接表关联关系

    虽然描述部分为空,但根据标题,我们可以推断这篇文章可能详细介绍了如何在Hibernate中设置和管理一对多双向关联,包括配置XML映射文件、注解或者使用Java配置,以及如何在代码中处理这种关联关系。 **标签解析:**...

    hibernate关联映射的作用和常用属性解释

    其中,“关联映射”是Hibernate中的一个重要概念,用于处理实体之间的关联关系,例如一对一、一对多、多对一以及多对多等。 #### 常用属性解析 为了更好地理解和运用Hibernate中的关联映射机制,我们需要深入了解...

    Hibernate映射关联详解

    ### Hibernate映射关联详解 #### 一、理解一对多双向关联关系 在关系型数据库设计中,一对多关联是常见的数据组织方式之一。而在面向对象编程语言中,这种关系则通常通过集合(如Set或List)来实现。本文将重点...

    Hibernate双向一对多经典实例

    **标题:“Hibernate双向一对多经典实例”** 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者能够用面向对象的方式处理数据。本实例将聚焦于Hibernate中的一对多关系...

    Hibernate一对多映射配置详解

    在Java持久化框架Hibernate中,一对多映射是常见的实体关系映射类型,它表示一个实体(例如User)可以与多个其他实体(例如Account)相关联。以下是对Hibernate一对多映射配置的详解: 一、XML文件配置 1. 单向...

    Hibernate教程04_关系映射之一对一单向外键关联

    **标题详解:**“Hibernate教程04_关系映射之一对一单向外键关联” 在Hibernate框架中,关系映射是数据库表之间的关联在对象模型中的体现。本教程重点讲解了一对一(One-to-One)单向外键关联的实现方法。在数据库...

    hibernate one-to-one 一对一唯一外键关联映射_单向 and 双向

    Hibernate 一对一唯一外键关联映射详解 Hibernate是一种流行的Java持久层框架,提供了多种关联映射方式,其中一对一唯一外键关联映射是一种常见的关联方式。在本文中,我们将详细介绍Hibernate一对一唯一外键关联...

    hibernate的关联映射

    3. **多对一关联映射** - 这种关联实际上是一对多关联的反向视角,配置方式与一对多的单向关联类似,只是角色互换。 4. **多对多关联映射** - **中间表关联**:多对多关联通常需要一个中间表来存储两个实体的...

    hibernate实体映射文件字段设置默认值

    首先,我们需要了解一个基本的Hibernate映射文件结构: ```xml &lt;hibernate-mapping&gt; &lt;!-- 映射类的属性 --&gt; &lt;/hibernate-mapping&gt; ``` 这里的`&lt;class&gt;`标签表示映射到特定的Java类,其属性`name`指定了对应的...

    hibernate一对多双向

    在探讨“Hibernate一对多双向”这一主题时,我们首先需要理解Hibernate框架以及它在Java开发中的重要性。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用程序提供了一种将对象模型与数据库模型相...

    Hibernate3.x关联映射示例

    3. **多对一(Many-to-One)关联**:与一对一关联相反,多个实体实例对应一个其他实体的实例。例如,多个订单(Order)可以关联到同一个客户(Customer)。 4. **多对多(Many-to-Many)关联**:一个实体可以关联多...

    hibernate一对一关联映射

    Hibernate支持两种一对一关联映射方式:注解和XML配置。 - **注解方式** 使用`@OneToOne`注解标记字段,同时通过`@JoinColumn`指定外键字段。例如: ```java @Entity public class User { @OneToOne(mapped...

    详解hibernate双向多对多关联映射XML与注解版

    在Hibernate框架中,多对多关联映射可以通过XML配置或注解方式进行。本文将深入探讨这两种方式。 首先,理解多对多关联的基本原理。在员工和角色的例子中,一个员工可以拥有多个角色,同时一个角色也可以被多个员工...

    Hibernate双向关联代码示例

    4. **双向多对一关联(ManyToOne + ManyToOne)** 在这种关联中,双方都有对方的引用。除了在子类中添加对父类的引用,还需要在父类中添加对子类的引用,通常是集合。 5. **双向一对一双向关联(OneToOne)** ...

    Hibernate组件映射代码详解

    * Hibernate映射详解 * Hibernate组件 * Hibernate映射文件 * Hibernate映射关系 部分内容的知识点: * 组件关联映射的实现方式 * Hibernate组件映射的配置文件(People.hbm.xml) * 组件类的定义和使用(MyName.java...

    Hibernate教程06_关系映射之一对一单向主键关联

    4. **配置一对一关系映射:** 在Hibernate中,可以使用`@OneToOne`注解来声明一对一关联,并通过`@PrimaryKeyJoinColumn`注解指定主键关联的列。在拥有端实体中,可以直接使用这个注解,而在无拥端则不需要任何额外...

Global site tag (gtag.js) - Google Analytics