`
fisherhe
  • 浏览: 53044 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Hibernate学习笔记(对象-一对一关系映射)

阅读更多

话不多说,直接上例子,

Husband和Wife之间的一对一关联关系:

Husband持久化类代码:

public class User {
 private Integer h_id;
 private String husbandName;
 private Wife wife;

 public Integer getH_id() {
  return h_id;
 }

 public void setU_id(Integer h_id) {
  this.h_id = h_id;
 }

 public Wife getWife() {
  return wife;
 }

 public void setWife(Wife wife) {
  this.wife = wife;
 }

 public void setU_id(Integer u_id) {
  this.u_id = u_id;
 }

 public String getHusbandName() {
  return husbandName;
 }

}

 Wife持久化类:

 

public class Wife {
	private String wifeName;
	private Husband husband;
	private Integer w_id;

	public Integer getW_id() {
		return w_id;
	}

	public void setW_id(Integer w_id) {
		this.w_id = w_id;
	}

	public String getWifeName() {
		return wifeName;
	}

	public void setWifeName(String wifeName) {
		this.wifeName = wifeName;
	}

	public User getHusband() {
		return usband;
	}

	public void setHusband(Husband husband) {
		this.husband = husband;
	}

}

 一对一关系的配置存在两种方式,一种是通过主键,另外一种是通过唯一外键去关联

配置文件如下:

<hibernate-mapping package="com.lovo">
	<class name="Husband" table="t_husband">
		<id name="u_id" column="f_user_id" type="integer">
			<generator class="identity"></generator>
		</id>
		<property name="husbandName" type="string" column="f_husbandName"></property>
<!-- 基于主键的一对一-->
<!-- 这里就是一对一的映射 -->
		<one-to-one name="wife" cascade="save-update"></one-to-one>
<!--唯一外键关联的一对一-->
<!--这里我是把huband作为多的一方,column t_husband表中的字段名,表示一个外键-->
<!--设置unique="true"表示唯一性-->
<many-to-one name="wife"
   class="Wife"
   column="fk_wife_id"
   cascade="save-update"
   unique="true">
   </many-to-one>

 Wife类映射文件的配置:

	<class name="Wife" table="t_wife">
		<!-- 基于主键的一对一关系 -->
		<id column="f_wife_id" name="w_id" type="integer">
			<!-- 注意: -->
			<!-- 本类的id 既是主键,又是外键  -->
			<!-- Wife对象的是从对象, huband是主对象, 先有主,后有从.  -->
			<!-- 此处的husband是Wife类的一个属性 -->
			<generator class="foreign">
				<param name="property">user</param>
			</generator>
		</id>
		<property name="wifeName" type="string" column="f_wifeName">
		</property>
		<!-- 此处的user是User类的一个属性 -->
		<!-- constrained="true" 对生成的数据表产生约束,t_wife表的w_id既是主键,又是外键 -->
		<!-- constrained="false" 表结构上没有约束, 取何值对对象关系没影响,只是对表结构有影响-->
		<one-to-one name="husband" constrained="true" cascade="save-update">
		</one-to-one>
</class>
<!--基于外键的一对一-->
   <one-to-one name="husband" class="Husband" property-ref="wife" cascade="save-update">
   </one-to-one>

 测试就没写了,参照一对多关系中的例子。

 

分享到:
评论

相关推荐

    Hibernate学习笔记特别详细

    《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...

    Hibernate学习笔记整理

    Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...

    Hibernate学习笔记(1-13)

    【Hibernate学习笔记(1-13)】是传智播客李勇的教程,涵盖了Hibernate框架的基础到进阶内容。Hibernate是一个流行的ORM(对象关系映射)框架,它旨在解决Java面向对象编程与关系型数据库之间的模型不匹配问题,即...

    Java相关课程系列笔记之十四Hibernate学习笔记

    - 对象关系映射:将Java对象与数据库表建立一对一、一对多、多对一、多对多的映射关系。 - 缓存机制:提供第一级缓存(Session级别的)和第二级缓存(SessionFactory级别的),提高性能。 - 支持懒加载和立即加载:...

    hibernate学习笔记文档

    ### Hibernate 学习笔记知识点概览 #### 一、Hibernate 概述 - **定义**:Hibernate 是一款开源的对象关系映射(ORM)框架,它实现了将 Java 应用程序中的对象模型映射到关系型数据库中的记录。通过 ORM 技术,...

    Hibernate学习笔记和资料

    hibernate中一对一,一对多,多对多关系的配置,延迟加载,cascade,inverse hibernate查询方式概述,HQL查询,QBC查询,分页,结果集封装方式 ,高级查询 查询的优化,一级缓存,二级缓存,批量查询,注解方式

    hibernate API帮助文档 及hibernate学习笔记

    Hibernate是一款强大的Java持久...通过阅读这份“Hibernate API帮助文档”和“Hibernate学习笔记”,你将能够深入理解Hibernate的工作原理,掌握其API的使用,并能在实际项目中有效地利用Hibernate进行数据持久化操作。

    hibernate学习笔记

    在本篇《Hibernate学习笔记》中,我们将深入探讨Hibernate这一流行的Java对象关系映射(ORM)框架。Hibernate允许开发者以面向对象的方式处理数据库操作,极大地简化了数据存取的复杂性。以下是一些关键知识点: 1....

    达内HIBERNATE学习笔记

    根据提供的信息,我们可以总结出以下关于达内HIBERNATE学习笔记的重要知识点: ### 第一章:Hibernate入门 #### 1.1 学习目标 - 理解Hibernate的基本概念。 - 掌握如何使用Hibernate进行开发。 #### 1.2 对象持久...

    马士兵hibernate学习笔记

    - **重点**:关系映射是ORM中最为核心的部分之一,用于处理对象间的关系(如一对一、一对多等)。 - **实现**:通过映射文件或注解来定义对象间的关系,并在Hibernate中通过相应的API进行操作。 #### 九、Hibernate...

    hibernate学习笔记mashibing

    例如,一对一、一对多、多对一、多对多的关系都可以通过配置文件或注解进行映射。通过这种方式,我们可以在Java对象之间直接操作相关联的数据,而无需关心底层的SQL。 在Struts等MVC框架中整合Hibernate,可以构建...

    马士兵java框架hibernate学习笔记

    - **一对一映射**:使用`@OneToOne`注解实现。 - **一对多映射**:使用`@OneToMany`注解实现。 - **多对一映射**:使用`@ManyToOne`注解实现。 - **多对多映射**:使用`@ManyToMany`注解实现。 #### 九、...

    hibernate学习笔记,学习大纲【吐血推荐】

    **Hibernate学习笔记与大纲** Hibernate 是一款开源的Java语言下的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发人员可以使用面向对象的方式处理数据,而无需过多关注底层的SQL语句。本笔记将深入...

    hibernate 学习笔记1

    ### 对象持久化与Hibernate学习笔记 #### 一、对象持久化的概念与重要性 - **定义**: 对象持久化是指将程序中的对象状态存储到持久化存储设备上的过程,以便在程序结束运行后仍然可以保留这些数据。 - **必要性**:...

    hibernate学习笔记第二天的源码

    在深入探讨Hibernate学习笔记第二天的源码之前,我们先来理解一下Hibernate的核心概念。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作转化为对象模型,大大简化了数据访问层的开发...

Global site tag (gtag.js) - Google Analytics