1)建立Person类:(与8同样)

2)建立IdCard类:(与8同样)

3)建立持久化类:

 1>保存方法(与8同样)

 2>获取方法(与8同样)

 3>删除方法(与8同样)

 4> 解除关联的方法:

/*** 解除关联关系的方法*/@Testpublic void testRemoveRelation() {Session session = SessionFactoryTools.getSession();Transaction tx = null;try {tx = session.beginTransaction();// ===============================================/*** 获取person对象并将其关联的IdCard设置为空 在一对一中。* 因为一方不具有外键管理权。所以解除外键关联是不能实现的* Person person = (Person) session.get(Person.class, 1);* person.setIdCard(null);*//*** 获取idCard对象并将其相关联的person设置为空 在一对一中,* 因为具有外键方的外键为本方的主键,不能够设置为空,* 所以该外键的解除是能够实现的* IdCard idCard = (IdCard) session.get(IdCard.class, 1);* idCard.setPerson(null);*/// ===============================================tx.commit();} catch (RuntimeException e) {if (tx != null) {tx.rollback();}throw e;} finally {session.close();}}

4)Person.hbm.xml文件的配置:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="map_4"><!--基于主键的一对一方式。本方无外键类名:Person 类相应的表名:person 一对一相应类:IdCard一对一相应的表:idCard一对一所相应的外键的属性名:person--><class name="Person" table="person"><id name="id" type="int" column="id"><generator class="native" /></id><property name="name" type="string" column="name" length="20" /><one-to-one name="idCard" class="IdCard"></one-to-one></class>
</hibernate-mapping>

5)IdCard.hbm.xml文件的配置:

<?xml version="1.0"?

> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="map_4"> <!-- 基于外键的一对一方式,本方有外键 类名:IdCard 类相应的表名:idCard 多对一相应类的表名:person 多对一相应的类名:Person 主键生成策略为:外键 參数preoperty:生成主键时所依据的对象 属性 constrained设置为:有外键约束 --> <class name="IdCard" table="idCard"> <id name="id" type="int" column="id"> <generator class="foreign" > <param name="property">person</param> </generator> </id> <property name="number" type="string" column="number" /> <one-to-one name="person" class="Person" constrained="true"> </one-to-one> </class> </hibernate-mapping>

6)主文件配置(与8同样)。

Hibernate_9_Person和IdCard实例_一对一关系:基于主键相关推荐

  1. Hibernate_8_Person和IdCard实例_一对一关系:基于外键

    1)建立Person类: public class Person {private Integer id;private String name;private IdCard IdCard;publi ...

  2. Hibernate基于主键一对一映射操作实例

    背景: 公民和公民的身份证,是一个一对一的例子,一个公民只有一个身份证. 这个是基于主键的,基于外键的映射在:http://blog.csdn.net/nthack5730/article/detai ...

  3. 【Hibernate】Hibernate实体关系映射——主键相同的一对一关系

    主键相同的一对一关系 由于两个实体类是一对一的关系,因此可设置两个实体类使用相同的主键.反过来,具有相同主键的实体被视为一对一的关系.这样两个表就省掉了外键关联. 以客户地址管理为例学习主键相同的一对 ...

  4. mysql 一 、关系模型——主键——外键——索引

    关系模型 表的每一行称为记录(Record),记录是一个逻辑意义上的数据. 表的每一列称为字段(Column),同一个表的每一行记录都拥有相同的若干字段. 字段定义了数据类型(整型.浮点型.字符串.日 ...

  5. mysql中有主键和外键吗_谈谈mysql的主键和外键

    主键:保证数据的唯一性,非空且唯一,一般设置主键的语法为:字段 类型 PRIMARY KEY;或者 字段 类型,PRIMARY KEY(字段名) 外键:保证数据的完整性,一致性.一般设置的外键关联的是 ...

  6. 数据库系统 关系模型 关系 候选键 主键 外键

    文章目录 关系的特性 数学定义的关系 关系的特性 关系不可重复 候选码/候选键 一个关系中可以有多个候选码/候选键 主码/主键 主属性与非主属性 外码/外键 总结:什么是关系 关系的特性 列的同质性, ...

  7. sql 复合主键 联合主键_学习SQL:主键

    sql 复合主键 联合主键 If you've already worked with databases, then you could hardly miss the term – Primary ...

  8. mysql主键和外键_谈谈mysql的主键和外键

    主键:保证数据的唯一性,非空且唯一,一般设置主键的语法为:字段 类型 PRIMARY KEY;或者 字段 类型,PRIMARY KEY(字段名) 外键:保证数据的完整性,一致性.一般设置的外键关联的是 ...

  9. mysql 复合主键 单独_怎么把复合主键改为单一主键

    所谓的复合主键 就是指你表的主键含有一个以上的字段组成,不使用无业务含义的自增id作为主键. 比如create table test ( name varchar(19), id number, va ...

最新文章

  1. java 系统 类_JAVA系统类 System的简单整理
  2. angular ajax get post 参数,AngularJS - $ http.post发送请求参数而不是JSON的任何方式?...
  3. 需求入门 - 获取需求方法:Nine Boxes
  4. php mysql html 转义字符_php, html, javascript, mysql 之间的特殊字符处理
  5. 设计模式的C语言应用-表驱动模式
  6. windows 安装tomcat 7
  7. 独立成分分析(Independent Component Analysis)(ICA)(主元分解)
  8. 类别不平衡问题之评估指标
  9. 说说Thread的interrupt()
  10. iOS - iOS8.0 至 iOS15.0 版本变化
  11. 【大电流H桥电机驱动电路的设计与解析(包括自举电路的讲解,以IR2104+LR7843为例)】
  12. SSD【目标检测篇】
  13. win7查找计算机图片,win7系统全盘搜索图片的操作方法
  14. c语言编译题a b,C语言考试试题A卷.doc
  15. pycharm远程调试的“bug”:/miniconda3/envs/learn/bin/python: can‘t open file ‘//<a2a1d7b1c-6145-4e45-...
  16. python机器学习案例-梯度提升模型搭建及评估(完整代码+实现效果)
  17. 机器学习笔记 - 单位矩阵和逆矩阵
  18. 计算机二级vb考试怎么准备,计算机二级考试内容是什么 各科目该怎么准备
  19. 20175212童皓桢 《Java程序设计》第十周学习总结
  20. jmap 几个慎用操作

热门文章

  1. 四川2008省选·洛谷·奖励关
  2. android通讯录开发(粗糙实现微信通讯录的功能)
  3. 华南理工大学珠海学院计算机,慕了!盘点那些有“私家游泳池”的广东高校!考上就算捡到啦!...
  4. html登录cdn,html cdn
  5. 三个基本的布尔逻辑算符是_什么是布尔逻辑运算符?布尔逻辑运算符一共有哪几种?...
  6. ROS配置和使用“北通”无线手柄,主从机远程控制JP-Chassis底盘
  7. 你的名字烂大街了吗?数据揭开国人起名背后的秘密……
  8. python制作数据增长动图_手把手教你做一个python+matplotlib的炫酷的数据可视化动图...
  9. 试用artipub一文多发平台
  10. Python基础算法案例:24点纸牌游戏算法