`
p_3er
  • 浏览: 58086 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

第九章 关系映射 多对一关联映射

 
阅读更多

如:departmentemployee

employee中有一个department_id的外键

Department:

public class Department implements Serializable {
	private Integer id;
	private String name;

	public Department() {
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}


Employee:

public class Employee implements Serializable {
	private Integer id;
	private String name;
	private Department department;

	public Department getDepartment() {
		return department;
	}

	public void setDepartment(Department department) {
		this.department = department;
	}

	public Employee() {
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}


Department.hbm.xml:(与普通的映射文件一样)

<hibernate-mapping>
	<class name="cn.framelife.hibernate.entity.Department" table="department"
		catalog="hibernate">
		<id name="id" type="java.lang.Integer">
			<column name="id" />
		</id>
		<property name="name" type="java.lang.String">
			<column name="name" length="45" not-null="true" />
		</property>	
	</class>
</hibernate-mapping>

Employee.hbm.xml:

<hibernate-mapping>
	<class name="cn.framelife.hibernate.entity.Employee" table="employee"
		catalog="hibernate">
		<id name="id" type="java.lang.Integer">
			<column name="id" />
			<generator class="native"></generator>
		</id>
		<property name="name" type="java.lang.String">
			<column name="name" length="45" not-null="true" />
		</property>	
		<many-to-one name="department" column="department_id"></many-to-one>
	</class>
</hibernate-mapping>

增加:

transaction = session.beginTransaction();
			Department department = new Department();
			department.setName("bb");
			session.save(department);
			Employee employee = new Employee();
			employee.setDepartment(department);
			employee.setName("li");
			session.save(employee);
			transaction.commit();

查询:

查询employee的时候可以得到外键关联的department对象。



分享到:
评论

相关推荐

    Hibernate关联关系映射目录

    在多对一连接表单向关联中,多个实体(子实体)与一个实体(父实体)相关联,这种关联通过第三个表(连接表或关联表)来实现。 **表结构示例**: - **Department表**: - `departmentid`: 主键 - `departmentName`...

    第9章Mybatis映射篇之结果映射

    Mybatis还支持关联映射,如一对多、多对一的关系映射。例如,如果`User`类还有一对多的`Address`关系,可以使用`&lt;collection&gt;`标签: ```xml &lt;!-- ... --&gt; &lt;!-- ... --&gt; ``` 此外,Mybatis提供了自动...

    hibernate一对多,多对一,一对多双向关联

    例如,@OneToOne 可用于表示一对一关系,@ManyToOne 和 @OneToMany 用于多对一和一对多关系。 4. **外键约束:** 在数据库层面,这些关联通常通过外键实现。Hibernate允许在映射文件或注解中指定外键的生成策略。 ...

    hibernate多对多双向关联

    "hibernate_many2many_2"这个文件名可能是指一个关于Hibernate多对多关联的示例或教程的第二部分,可能包含配置文件、Java实体类、映射文件以及相关的测试代码。 **详细知识点:** 1. **实体类定义**:在Hibernate...

    Hibernate ORM - 一对多双向组合关联关系

    9. **缓存机制**:理解Hibernate的第一级缓存(Session缓存)和第二级缓存(可选,如EHCache),它们如何影响一对多关联的读写操作。 10. **性能考虑**:在设计一对多双向组合关联时,要考虑到查询效率、内存消耗等...

    按键映射3.1随意映射键盘按键

    在IT领域,键盘映射是一种技术,允许用户自定义或...总之,“按键映射3.1随意映射键盘按键”是一个强大的工具,让使用者能够根据自己的需求定制键盘,提高工作效率,同时也展现了IT行业对用户体验的重视和持续创新。

    asp.net 数据映射方案

    3. **实体类(Entities)**:阐述了如何定义表示数据库表的实体类,以及如何定义它们之间的关系,如一对一、一对多、多对多。 4. **查询(Linq to Entities)**:展示了如何使用Linq(Language Integrated Query)...

    计算机网络谢希仁第八版第九章无线网络和移动网络复习题

    通过谢希仁编著的《计算机网络》第八版第九章内容,我们可以了解无线网络和移动网络的基本概念、技术和相关标准。 首先,无线局域网(WLAN)可以根据是否有固定基础设施分为两大类:有固定基础设施的和无固定基础...

    精通Java Web整合开发(第2版)

    12.4.9 多对多双向关联的annotation注解实现545 12.4.10 组成关系映射的annotation注解实现547 12.4.11 继承关系映射的annotation注解实现549 12.4.12 hibernate集合映射的annotation注解实现552 12.5 基于...

    内蒙古师范大学附属中学高中数学2.1.1第2课时映射同步练习含解析新人教B版必修1

    题目中指出,映射可能是多对一的关系,即B中的元素可以对应A中的多个元素,但A中的每个元素在B中必须有且仅有一个象。 4. **映射的表示与计算**:映射可以通过函数关系式来表示,如题目中的f:x→x²或者f:x→x+y...

    离散数学-集合论,共9章,比较全面

    映射的性质,如一对一、一对多、多对一和多对多映射,以及逆映射、复合映射的概念都会被详细解释。 第三章“关系”涵盖了关系的定义、性质和分类,如自反性、对称性、传递性和反传递性。此外,关系的闭包、关系的度...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

    第7章 映射一对多关联关系  7.1 建立多对一的单向关联关系  7.1.1 元素的not-null属性  7.1.2 级联保存和更新  7.2 映射一对多双向关联关系  7.2.1 元素的inverse属性  7.2.2 级联删除  7.2.3 父子关系  7.3...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

    第7章 映射一对多关联关系  7.1 建立多对一的单向关联关系  7.1.1 元素的not-null属性  7.1.2 级联保存和更新  7.2 映射一对多双向关联关系  7.2.1 元素的inverse属性  7.2.2 级联删除  7.2.3 父子关系  7.3...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

    第7章 映射一对多关联关系  7.1 建立多对一的单向关联关系  7.1.1 元素的not-null属性  7.1.2 级联保存和更新  7.2 映射一对多双向关联关系  7.2.1 元素的inverse属性  7.2.2 级联删除  7.2.3 父子关系  7.3...

    CsGL 纹理映射

    【CsGL纹理映射】是基于C#编程语言利用CsGL库实现OpenGL图形库中的纹理映射技术。OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形,而CsGL是.NET框架下的一个OpenGL封装库,使得C#开发者也能方便地...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

    第7章 映射一对多关联关系  7.1 建立多对一的单向关联关系  7.1.1 元素的not-null属性  7.1.2 级联保存和更新  7.2 映射一对多双向关联关系  7.2.1 元素的inverse属性  7.2.2 级联删除  7.2.3 父子关系  7.3...

    答案《关系数据库与SQL语言》第一章练习题.pdf

    9. **多对多联系的处理**:对于两个实体间的多对多联系,通常需要创建一个关联表(或关系)来存储这两者之间的联系。 10. **模式的逻辑子集**:外模式是模式的逻辑子集,用于用户或应用程序的特定视图。 11. **...

    hibernate_reference中文文档.pdf

    - **7.5.1 一对多 (one to many)/多对一 (many to one)**:说明使用连接表的双向一对多/多对一关联映射。 - **7.5.2 一对一 (one to one)**:介绍使用连接表的双向一对一关联映射。 - **7.5.3 多对多 (many-to-...

    答案《关系数据库与SQL语言》第一章练习题.docx

    《关系数据库与SQL语言》第一章练习题涉及到的关系数据库基本概念和关键知识点如下: 1. **实体完整性**:实体完整性是数据库完整性的一种,它要求主键(Primary Key)属性的值不能为空,这是通过定义主键来确保的...

Global site tag (gtag.js) - Google Analytics