一对一关系以丈夫和妻子模型

配置文件

妻子配置文件:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4. "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
  5. <!-- 映射配置 -->
  6. <hibernate-mapping>
  7. <class name="hib.po.Wife" table="t_wife">
  8. <id name="wifeId" column="wife_id">
  9. <generator class="uuid"></generator>
  10. </id>
  11. <property name="wifeName" column="wifename"></property>
  12. </class>
  13. </hibernate-mapping>

丈夫配置文件

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4. "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
  5. <!-- 映射配置 -->
  6. <hibernate-mapping>
  7. <class name="hib.po.Husband" table="t_husband">
  8. <id name="husId" column="hus_id">
  9. <generator class="uuid"></generator>
  10. </id>
  11.  
  12. <!-- 普通属性和普通字段映射 -->
  13. <property name="husName" column="husname"></property>
  14. <!-- 关联关系:和Wife的one2one
  15. 特殊的many2one
  16. -->
  17. <many-to-one
  18. name="wife"
  19. class="hib.po.Wife"
  20. column="wife_id"
  21. unique="true"
  22. ></many-to-one>
  23. </class>
  24. </hibernate-mapping>

测试代码:

  1. /**
  2. * @author nunu
  3. * 测试hibernate OneToMany
  4. */
  5. public class TestHibernateOneToOne {
  6.  
  7. /**
  8. * 添加数据
  9. */
  10. @Test
  11. public void addUser() {
  12. SessionFactory sf = H3Util.getSessionFactory();
  13. Session session = sf.openSession();
  14. Transaction ts = session.beginTransaction();
  15.  
  16. Husband hus1 = new Husband(null, "小明", null);
  17. Husband hus2 = new Husband(null, "小强", null);
  18. Wife wife1 = new Wife(null, "小花");
  19. Wife wife2 = new Wife(null, "小丽");
  20.  
  21. session.save(hus1);
  22. session.save(hus2);
  23. session.save(wife1);
  24. session.save(wife2);
  25. System.out.println("成功");
  26. ts.commit();
  27. session.close();
  28. }
  29.  
  30. @Test
  31. public void updateHusband() {
  32. SessionFactory sf = H3Util.getSessionFactory();
  33. Session session = sf.openSession();
  34. Transaction ts = session.beginTransaction();
  35.  
  36. Husband hus1 = (Husband) session.get(Husband.class, "4028810a57d16fe00157d16fe3450000");
  37. Husband hus2 = (Husband) session.get(Husband.class, "4028810a57d16fe00157d16fe3590001");
  38.  
  39. Wife wife1 = (Wife) session.get(Wife.class, "4028810a57d16fe00157d16fe3590002");
  40. Wife wife2 = (Wife) session.get(Wife.class, "4028810a57d16fe00157d16fe3590003");
  41.  
  42. //维护
  43. hus1.setWife(wife1);
  44. hus2.setWife(wife2);
  45.  
  46. //update:使用一级缓存中的快照,如果检测没有发生改变,不会发送任何修改语句
  47. session.update(hus1);
  48. session.update(hus2);
  49.  
  50. System.out.println(hus1);
  51. System.out.println(hus2);
  52.  
  53. ts.commit();
  54. session.close();
  55. }
  56. }

hibernate的基础学习--一对一关联的更多相关文章

  1. hibernate的基础学习--一对多关联

    基本的用户和部门类,只有uuid和名称,没有其余字段. 配置文件 部门: <?xml version="1.0" encoding="utf-8" ?&g ...

  2. hibernate的基础学习--多表关联数据查询

    Hibernate共提供4种多表关联数据查询方式 OID数据查询+OGN数据查询方式 HQL数据查询方式 QBC数据查询方式 本地SQL查询方式(hibernate很少用) 1.OID数据查询+OGN ...

  3. hibernate的基础学习--多对多关联

    多对多采用学生老师模型进行测试 学生配置文件: <?xml version="1.0" encoding="utf-8" ?> <!DOCTY ...

  4. Mybatis学习——一对一关联表查询

    1.SQL语句建表 CREATE TABLE teacher( t_id ) ); CREATE TABLE class( c_id ), teacher_id INT ); ALTER TABLE ...

  5. hibernate的基础学习

    工具类: public class H3Util { private static final SessionFactory sessionFactory = buildSessionFactory( ...

  6. Hibernate 一对一关联映射,mappedBy参数解析

    在最近java,SSH框架的学习中遇到了这样的一个问题,在Hibernate的开发中一对一关联映射的单向关联,主表会在次表新增一列次表的主键如下图,但是在双向关联中次表不会在表中创建主表的主键一列,这 ...

  7. mybatis 一对一关联 association 返回空值

    mybatis 一对一关联 association 返回空值 最近学习spring mvc + mybatis开发,看的书是<Spring MVC+Mybatis开发 从入门到精通>,在学 ...

  8. 【学习笔记】Hibernate 一对一关联映射 组件映射 二级缓存 集合缓存

    啊讲道理放假这十天不到啊 感觉生活中充满了绝望 这就又开学了 好吧好吧继续学习笔记?还是什么的 一对一关联映射 这次我们仍然准备了两个表 一个是用户表Users 一个是档案表Resume 他们的关系是 ...

  9. Hibernate学习笔记(四)关系映射之一对一关联映射

    一. 一对一关联映射 ²        两个对象之间是一对一的关系,如Person-IdCard(人—身份证号) ²        有两种策略可以实现一对一的关联映射 Ø        主键关联:即让 ...

随机推荐

  1. 前端编程提高之旅(十)----表单验证插件与cookie插件

        实际项目开发中与用户交互的常见手法就是採用表单的形式.取得用户注冊.登录等信息.而当用户注冊或登录后又须要记住用户的登录状态.这就涉及到经常使用的两个操作:表单验证与cookie增删查找.   ...

  2. 零基础学python-5.9 集合set

    今天我们来说说set 集合:是一些唯一的.不可变的对象(数值和字符串等)的一个无序的集合(collection).而且这些对象支持与数学集合理论相相应的操作. 特点: 1.一个项仅仅可以出现一次 2. ...

  3. windows 怎么验证域名是否开启了 https

    由于 ping 是针对 IP 层的,只能检查当前系统网络与网络中某个IP,某个域名是否连通. 当我们需要验证域名是否开启了 https时,用如下方法: 1. 下载tcping.exe,放到本机C盘根目 ...

  4. register_shutdown_function函数详解

    设定错误和异常处理三函数 register_shutdown_function(array(‘Debug’,'fatalError’)); //定义PHP程序执行完成后执行的函数 set_error_ ...

  5. Linux变量内容的删除、代替与替换

    变量内容的删除与代替 范例一:先让小写的 path 自己定义变量配置的与 PATH 内容同样 [root@www ~]# path=${PATH} [root@www ~]# echo $path / ...

  6. android 项目R文件丢失解决的方法

    R文件丢失的原因有非常多,这里提供几种解决的方法: 1.  选中项目,点击 Project - Clean , 清理一下项目. 2. 选中项目,右键 选择 Android Tools  - Fix P ...

  7. nyoj 题目10 skiing —— 南阳oj

    题目信息例如以下: skiing 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描写叙述 Michael喜欢滑雪百这并不奇怪, 由于滑雪的确非常刺激.但是为了获得速度,滑的区 ...

  8. Spring中的IOC容器(学习笔记)

    如何将Bean配置到Spring的Bean容器中 通过xml配置文件: Bean实现类来自第三方类库:如“DataSource”等      需要命名空间配置如:context,aop,mvc等   ...

  9. jquery和CSS3带倒影的3D万花筒旋转动画特效效果演示

    <!DOCTYPE html> <html> <head> <title></title> <meta charset='utf-8' ...

  10. Java DES加密解密

    import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpe ...