一对一主键:单向和双向
一. 单向一对一主键(一个对象中存在另一个对象的引用,只能从一个对象找另一个对象,不能反过来),两个是独立的对象,及时加了级联也是两个对立的对象,只是一方根据级联的取值看着另一个对象做相应的动作.
(1)建立两个entity,IDCard这个类中有per对象
(2)在entity中建立一个test,调用工具类的方法自动生成xml文件,这里和表还没有关系,表是在持久化中和数据库中的表绑定的,也就是只有在运行持久化的时候才会出现表.
自动生成xml后,这两个对象是没有关系的,
(3)找到idCard.hbm.xml中下面的属性
更改为
加了级联两个对象依旧是独立的两个对象,也就是生成表后是两个独立的表,;但是idCard做增删改,per也做增删改
(4)测试类
二,双向一对一主键(两个对象互相能找到):在上面的例子单向一对一的基础上,直接在per的entity中添加一个对象属性,在xml中添加one to one 属性.
(1)entity中
人找身份证
身份证找人
(2)配置文件中代码
idCard中的代码
per中的代码
一对一外键(两个表绑定到了一起):单向和双向
直接在配置文件中修改
idCard中的代码,现在只有一个表所以lazy没有效果,如果表比较多一定奥设置
idCard外键产生了一个外键
此处是在配置中column没有写所以默认是和name的值一样所以是per,是可以设置的
测试增加代码不能有id
修改的时候一定要有id













网友评论