hibernate一对一关系实现
按照主键映射,按照外键映射
Address.hbm.xml:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="model">
<class name="Address" table="t_address">
<id name="id" column="addressId">
<generator class="foreign">
<param name="property">user</param>
</generator>
</id>
<property name="address" column="address"></property>
<property name="zipcode" column="zipcode"></property>
<one-to-one name="user" class="model.User" constrained="true"></one-to-one>
</class>
</hibernate-mapping>
Address2.hbm.xml:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="model">
<class name="Address2" table="t_address2">
<id name="id" column="addressId">
<generator class="native"></generator>
</id>
<property name="address" column="address"></property>
<property name="zipcode" column="zipcode"></property>
<one-to-one name="user" class="model.User2" property-ref="address"></one-to-one>
</class>
</hibernate-mapping>
User.hbm.xml:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="model">
<class name="User" table="t_user">
<id name="id" column="userId">
<generator class="native"></generator>
</id>
<property name="name" column="userName"></property>
<one-to-one name="address" class="model.Address" cascade="all"></one-to-one>
</class>
</hibernate-mapping>
User2.hbm.xml:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="model">
<class name="User2" table="t_user2">
<id name="id" column="userId">
<generator class="native"></generator>
</id>
<property name="name" column="userName"></property>
<many-to-one name="address" class="model.Address2" column="addressId" cascade="all" unique="true"></many-to-one>
</class>
</hibernate-mapping>
UserTest.java:
package service;
import model.Address;
import model.Address2;
import model.User;
import model.User2;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import util.HibernateUtil;
public class UserTest {
SessionFactory sessionfactory=HibernateUtil.getSessionFactory();//获取Session工厂
private Session session;
@Before
public void setUp() throws Exception {
session=sessionfactory.openSession();//生成一个新的session
session.beginTransaction();//开启事务
}
@After
public void tearDown() throws Exception {
session.getTransaction().commit();//提交事务
session.close();//关闭session
}
@Test
public void testSave1(){
User user=new User();
user.setName("一号");
Address address=new Address();
address.setAddress("北极");
address.setZipcode("1111");
address.setUser(user);
user.setAddress(address);
session.save(user);
}
@Test
public void testSave2(){
User2 user=new User2();
user.setName("二号");
Address2 address=new Address2();
address.setAddress("南极");
address.setZipcode("2222");
address.setUser(user);
user.setAddress(address);
session.save(user);
}
}
转载于:https://www.cnblogs.com/daochong/p/4950279.html
hibernate一对一关系实现相关推荐
- Java程序员从笨鸟到菜鸟之(五十八)细谈Hibernate(九)hibernate一对一关系映射...
一对一关系映射即为关系双方都含有对方一个引用,其实在生活中一对一关系也很常见,比如人和×××,学生和学号等,都是一对一的关系映射,一对一映射分为单向的和双向的,没种关系映射又可以分为主键关联映射,唯一 ...
- Hibernate 一对一关系映射总结篇
在Hibernate 关系映射中一对一是比较常见也常用的一种,一对一的关系映射类型中又可分为:一对一外键单向映射.一对一外键双向映射.一对一主键单向映射和一对一主键双向映射. 下面就简单的说下自己对这 ...
- SSH注解 关于hibernate一对一双向外键级联关系 查询两表的内容 例子
由于要查询两张表的内容,所以去了解了下hibernate 的一对一级联 .现在写了个简单的SSH 注解的 一对一双向级联. 关于一对一双向级联详解我推荐这个博客.我感觉写的很好. hibern ...
- hibernate对象关系实现(二)一对一
双向一对一以部门和经理为例: a.部门和经理类中各自由对方的引用:(省略了get/set方法) b.数据库两种方式实现:一种(b.1)是外键映射,并将外键添加唯一约束(至于哪个对象的主键做外键,可随意 ...
- 【Hibernate】Hibernate实体关系映射——主键相同的一对一关系
主键相同的一对一关系 由于两个实体类是一对一的关系,因此可设置两个实体类使用相同的主键.反过来,具有相同主键的实体被视为一对一的关系.这样两个表就省掉了外键关联. 以客户地址管理为例学习主键相同的一对 ...
- Hibernate之两种一对一关系映射方式
前言 在前面的Hibernate学习中已经介绍了多对一.一对多.多对多的关系,本文主要介绍一对一关系.比如:一个用户有且仅有一个身份证,一个身份证也只能对应一个用户.而在学习Hibernate框架主要 ...
- hibernate中一对一关系映射
这篇文章讲述的是hibernate中一对一关系映射,如有错误或者不当之处还望各位大神批评指正. 一对一映射(外键关联) 目标 假设一个人对应养一只狗,一只狗只能由一个人来养,完成一对一相关操作. 类编 ...
- 【Hibernate】Hibernate实体关系映射——双边的一对一关系
凡是配置实体间关系的标签,例如:@ManyToOne.@OneToMany.@ManyToMany.@OneToOne等,都可以配置mappedBy属性.mappedBy表示该属性是反向属性,与另一边 ...
- Hibernate映射关系
为什么80%的码农都做不了架构师?>>> 前言 Hibernate Annotation关系映射有下面几种类型: 一对一外键关联映射(单向) @OneToOne(cascade ...
最新文章
- Python3异常-AttributeError: module ‘sys‘ has no attribute ‘setdefaultencoding‘
- python英语-50 行代码,实现中英文翻译
- E - Water Distribution
- case when then else多个条件_CentOS「linux」学习笔记24:if和case多个条件判断
- java编程连接mysql_Java编程学习之JDBC连接MySQL
- 大力智能台灯与飞利浦台灯 智能调光功能体验
- 集成学习之参数调整策略
- linux远程登录 密钥,使用密钥认证机制远程登录Linux
- 启动NameNode和DataNode
- git2.29.2..2安装_Centos6.5+jumpserver组件安装(2)
- python 封装对象数据_Python数据库封装实现代码示例解析
- 【转载】Docker镜像打包示例
- ai人工智能对话了_对话式AI:智能虚拟助手和未来之路。
- unity3d大型互动照片墙
- 《生成式深度学习》Generative Deeping Learning 笔记 第二章 深度学习
- python爬虫获取html_python3爬虫获取html内容及各属性值的方法
- TK1刷机以及简单配置
- PTB-XL大型的心电图数据集
- Android 4高级编程(第3版)》
- eclipse写程序从hdfs上下载文件到本地报错:at org.apache.hadoop.util.Shell.runCommand