`

一对多 多对一 关系映射

 
阅读更多
public class Department
{
    private Integer deptId;
    
    private String deptName;
    
    private Set<Employee> empSet;	// 关系对象集合
}

public class Employee
{
    private Integer empId;
    
    private String empName;
    
    private Department dept;		 // 关系对象属性
}

--------------------------------------------------------------
<hibernate-mapping package="entity">

	<class name="Employee" table="employee">
		<id name="empId">
			<generator class="native" />
		</id>
		<property name="empName"></property>
<!--		<property name="deptId"></property>  已经在下面配置了该列,就不能重复配置了-->

		
		<many-to-one name="dept" class="Department" cascade="save-update" lazy="false"> // 引用 关系对象deptId
			<column name="deptId"></column>
		</many-to-one>

	</class>


	<class name="Department" table="department">
		<id name="deptId">
			<generator class="native" />
		</id>
		<property name="deptName"></property>

		<set name="empSet" cascade="save-update" lazy="false" inverse = "true">		// 关系对象 引用 deptId
			<key column="deptId"></key>
			<one-to-many class="Employee"></one-to-many>
		</set>

	</class>

</hibernate-mapping>

 一对多关系映射要注意的问题:

    1.多对一方,配置关系属性时,切莫要重复配置关系外键

    2.多对一方,lazy属性要为false,即禁用懒加载,直接加载关系对象

 

 

如果一个表与其它表有很多关系  既有 一对一 又有一对多,那就先配置 一对一 再配置 一对多。

保证每一对关系都正确,那么再多的关系配置也是在一对一对的基础上加起来的。

 

只要细心的保证每一列都有配置,每一列都没有重复配置,一般是不会出错的。

分享到:
评论

相关推荐

    JPA一对一,一对多,多对多关系映射

    Java Persistence API(JPA)是Java...理解并熟练掌握一对一、一对多和多对多关系映射对于使用JPA进行数据库操作至关重要。在实际开发中,根据业务需求选择合适的关系映射方式,可以极大地提高开发效率和代码可维护性。

    ibatis 一对多 多对多完整映射

    **一对多关系映射** 在数据库设计中,一对多关系是指一个父记录可以与多个子记录关联,例如,一个用户可以有多个订单。在iBATIS中,我们可以通过配置XML映射文件来实现这种关系。 1. **配置映射文件** 在`ibatis...

    ibatis 一对多关系映射

    总的来说,理解并熟练运用Ibatis的一对多关系映射是优化数据访问效率,提高代码可读性和可维护性的重要技能。 在实际开发中,合理地使用Ibatis的一对多关系映射可以避免频繁的数据库查询,提高系统性能。同时,它也...

    EF6多对多,一对多关系映射样例代码

    在本示例中,我们将深入探讨如何在EF6中配置和使用多对多和一对多关系,特别是针对Oracle数据库的配置。 首先,多对多关系是指两个实体类型之间存在多个连接,每个实体都可以关联到多个实例。例如,一个学生可以...

    映射多对多及一对一关系

    #### 一、多对多关系映射 在数据库设计中,当两个实体之间存在多对多的关系时,通常会使用一个关联表来维护这种关系。例如,在给定的例子中,`Employees`表和`Roles`表之间的关系即为多对多关系。 **映射示例:** ...

    hibernate关联映射详解SSH 多对多,一对多关系对象映射

    本篇文章将深入探讨Hibernate中的一对多和多对多关系映射。 首先,让我们理解一对多关联映射。在数据库中,一对多关系意味着一个表中的记录可以与另一个表中的多个记录相关联。在Hibernate中,这可以通过在实体类中...

    MyBatis一对多映射

    3. 映射文件:在MyBatis的XML映射文件中,通过`&lt;association&gt;`标签定义一对多关系。`&lt;collection&gt;`子标签用于指定集合属性,`property`表示Java类中的字段名,`select`属性则是用来查询从表数据的SQL语句。 例如: ...

    SpringBoot中mybatis表关联映射关系(一对多嵌套:结果方式)

    SpringBoot 中 MyBatis 表关联映射关系(一对多嵌套:结果方式) 在 SpringBoot 中,MyBatis 是一个非常流行的持久层框架,它提供了强大的持久化功能,能够将 Java 对象与数据库表进行映射。在实际开发中,我们经常...

    Hibernate一对多,多对一映射

    在数据库设计中,一对多关系意味着一个父记录可以与多个子记录相关联。在Hibernate中,可以通过配置XML映射文件或使用注解来实现这种关系。例如,假设我们有`User`类和`Order`类,一个用户可以有多个订单,而一个...

    JPA一对多映射关系解析

    为了方便广大开发朋友的需要特整理一下有关jpa映射关系,希望可以帮助到一些朋友。

    一对多映射(双向映射)源码

    在Java或其他编程语言中,一对多映射(也称为多对一映射)和双向映射是两个重要的概念,它们在设计模式、数据库关系映射以及数据结构实现等方面有广泛应用。 一对多映射是指一个键可以对应多个值,而每个值只能对应...

    Hibernate一对多映射

    // 一对多关系的集合 private Set&lt;Order&gt; orders = new HashSet(); // getters and setters } public class Order { private Long id; private String orderNo; private User user; // getters and setters ...

    MyBatis高级映射(一对多查询)

    在MyBatis的映射文件中,我们需要为一对一和一对多关系创建对应的XML元素。对于一对多关系,通常使用`&lt;association&gt;`或`&lt;collection&gt;`标签来定义。例如,假设我们有一个`Department`类和一个`Employee`类,一个部门...

    oracle 数据库关系映射

    为了正确地将一对多关系映射到数据库中,需要在“多”的一端创建外键指向“一”的一端。 - 例如,在员工和部门的关系中,一个部门可以有多个员工。因此,在员工表中添加一个部门ID的外键字段,用来引用部门表中的...

    EJB3一对多和多对一关系映射实例

    一、一对多关系映射 在现实世界中,一对多关系非常常见,例如一个班级有多名学生,一个部门有多名员工。在EJB3中,我们可以通过`@OneToMany`注解来表示这种关系。以下是一个简单的例子: 1. 定义父类("多"的一方...

    Hibernate映射一对多关联关系

    - `&lt;many-to-one&gt;` 元素用于表示一对多关系中的“一”方。 - `name` 属性指定关联属性的名称。 - `column` 指定关联实体的外键字段。 - `class` 指定关联实体的全限定类名。 ##### 映射 `Customer` 类 ```xml ...

    hibernate(一对多,多对一映射)操作

    本文将深入探讨Hibernate中的一对多和多对一映射关系,并通过一个实际的demo演示它们在增删查改操作中的应用。 首先,我们要理解什么是数据库的关联关系。在数据库设计中,我们经常遇到一种情况,即一个实体可能与...

    一对一映射一对一映射

    一对一映射是数据库设计中的一个重要概念,特别是在关系型数据库中,它用于描述两个表之间的一种特殊关系,即每个表中的记录最多只能与另一个表中的一条记录相关联。这种关系非常紧密,通常出现在一个实体的信息被...

Global site tag (gtag.js) - Google Analytics