hibernate的基础学习--一对一关联
一对一关系以丈夫和妻子模型
配置文件
妻子配置文件:
- <?xml version="1.0" encoding="utf-8" ?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
- <!-- 映射配置 -->
- <hibernate-mapping>
- <class name="hib.po.Wife" table="t_wife">
- <id name="wifeId" column="wife_id">
- <generator class="uuid"></generator>
- </id>
- <property name="wifeName" column="wifename"></property>
- </class>
- </hibernate-mapping>
丈夫配置文件
- <?xml version="1.0" encoding="utf-8" ?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
- <!-- 映射配置 -->
- <hibernate-mapping>
- <class name="hib.po.Husband" table="t_husband">
- <id name="husId" column="hus_id">
- <generator class="uuid"></generator>
- </id>
- <!-- 普通属性和普通字段映射 -->
- <property name="husName" column="husname"></property>
- <!-- 关联关系:和Wife的one2one
- 特殊的many2one
- -->
- <many-to-one
- name="wife"
- class="hib.po.Wife"
- column="wife_id"
- unique="true"
- ></many-to-one>
- </class>
- </hibernate-mapping>
测试代码:
- /**
- * @author nunu
- * 测试hibernate OneToMany
- */
- public class TestHibernateOneToOne {
- /**
- * 添加数据
- */
- @Test
- public void addUser() {
- SessionFactory sf = H3Util.getSessionFactory();
- Session session = sf.openSession();
- Transaction ts = session.beginTransaction();
- Husband hus1 = new Husband(null, "小明", null);
- Husband hus2 = new Husband(null, "小强", null);
- Wife wife1 = new Wife(null, "小花");
- Wife wife2 = new Wife(null, "小丽");
- session.save(hus1);
- session.save(hus2);
- session.save(wife1);
- session.save(wife2);
- System.out.println("成功");
- ts.commit();
- session.close();
- }
- @Test
- public void updateHusband() {
- SessionFactory sf = H3Util.getSessionFactory();
- Session session = sf.openSession();
- Transaction ts = session.beginTransaction();
- Husband hus1 = (Husband) session.get(Husband.class, "4028810a57d16fe00157d16fe3450000");
- Husband hus2 = (Husband) session.get(Husband.class, "4028810a57d16fe00157d16fe3590001");
- Wife wife1 = (Wife) session.get(Wife.class, "4028810a57d16fe00157d16fe3590002");
- Wife wife2 = (Wife) session.get(Wife.class, "4028810a57d16fe00157d16fe3590003");
- //维护
- hus1.setWife(wife1);
- hus2.setWife(wife2);
- //update:使用一级缓存中的快照,如果检测没有发生改变,不会发送任何修改语句
- session.update(hus1);
- session.update(hus2);
- System.out.println(hus1);
- System.out.println(hus2);
- ts.commit();
- session.close();
- }
- }
hibernate的基础学习--一对一关联的更多相关文章
- hibernate的基础学习--一对多关联
基本的用户和部门类,只有uuid和名称,没有其余字段. 配置文件 部门: <?xml version="1.0" encoding="utf-8" ?&g ...
- hibernate的基础学习--多表关联数据查询
Hibernate共提供4种多表关联数据查询方式 OID数据查询+OGN数据查询方式 HQL数据查询方式 QBC数据查询方式 本地SQL查询方式(hibernate很少用) 1.OID数据查询+OGN ...
- hibernate的基础学习--多对多关联
多对多采用学生老师模型进行测试 学生配置文件: <?xml version="1.0" encoding="utf-8" ?> <!DOCTY ...
- Mybatis学习——一对一关联表查询
1.SQL语句建表 CREATE TABLE teacher( t_id ) ); CREATE TABLE class( c_id ), teacher_id INT ); ALTER TABLE ...
- hibernate的基础学习
工具类: public class H3Util { private static final SessionFactory sessionFactory = buildSessionFactory( ...
- Hibernate 一对一关联映射,mappedBy参数解析
在最近java,SSH框架的学习中遇到了这样的一个问题,在Hibernate的开发中一对一关联映射的单向关联,主表会在次表新增一列次表的主键如下图,但是在双向关联中次表不会在表中创建主表的主键一列,这 ...
- mybatis 一对一关联 association 返回空值
mybatis 一对一关联 association 返回空值 最近学习spring mvc + mybatis开发,看的书是<Spring MVC+Mybatis开发 从入门到精通>,在学 ...
- 【学习笔记】Hibernate 一对一关联映射 组件映射 二级缓存 集合缓存
啊讲道理放假这十天不到啊 感觉生活中充满了绝望 这就又开学了 好吧好吧继续学习笔记?还是什么的 一对一关联映射 这次我们仍然准备了两个表 一个是用户表Users 一个是档案表Resume 他们的关系是 ...
- Hibernate学习笔记(四)关系映射之一对一关联映射
一. 一对一关联映射 ² 两个对象之间是一对一的关系,如Person-IdCard(人—身份证号) ² 有两种策略可以实现一对一的关联映射 Ø 主键关联:即让 ...
随机推荐
- 前端编程提高之旅(十)----表单验证插件与cookie插件
实际项目开发中与用户交互的常见手法就是採用表单的形式.取得用户注冊.登录等信息.而当用户注冊或登录后又须要记住用户的登录状态.这就涉及到经常使用的两个操作:表单验证与cookie增删查找. ...
- 零基础学python-5.9 集合set
今天我们来说说set 集合:是一些唯一的.不可变的对象(数值和字符串等)的一个无序的集合(collection).而且这些对象支持与数学集合理论相相应的操作. 特点: 1.一个项仅仅可以出现一次 2. ...
- windows 怎么验证域名是否开启了 https
由于 ping 是针对 IP 层的,只能检查当前系统网络与网络中某个IP,某个域名是否连通. 当我们需要验证域名是否开启了 https时,用如下方法: 1. 下载tcping.exe,放到本机C盘根目 ...
- register_shutdown_function函数详解
设定错误和异常处理三函数 register_shutdown_function(array(‘Debug’,'fatalError’)); //定义PHP程序执行完成后执行的函数 set_error_ ...
- Linux变量内容的删除、代替与替换
变量内容的删除与代替 范例一:先让小写的 path 自己定义变量配置的与 PATH 内容同样 [root@www ~]# path=${PATH} [root@www ~]# echo $path / ...
- android 项目R文件丢失解决的方法
R文件丢失的原因有非常多,这里提供几种解决的方法: 1. 选中项目,点击 Project - Clean , 清理一下项目. 2. 选中项目,右键 选择 Android Tools - Fix P ...
- nyoj 题目10 skiing —— 南阳oj
题目信息例如以下: skiing 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描写叙述 Michael喜欢滑雪百这并不奇怪, 由于滑雪的确非常刺激.但是为了获得速度,滑的区 ...
- Spring中的IOC容器(学习笔记)
如何将Bean配置到Spring的Bean容器中 通过xml配置文件: Bean实现类来自第三方类库:如“DataSource”等 需要命名空间配置如:context,aop,mvc等 ...
- jquery和CSS3带倒影的3D万花筒旋转动画特效效果演示
<!DOCTYPE html> <html> <head> <title></title> <meta charset='utf-8' ...
- Java DES加密解密
import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpe ...