分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

hibernate一对一关联

发布时间:2023-09-06 01:33责任编辑:胡小海关键词:暂无标签

一对一映射有两种方式:主键关联和外键关联

1.主键关联即其中一个表的主键参照另外一张表的主键而建立起一对一关联关系

1.由于采用了主键关联方式,那通过主键关联的两张表,其关联记录的主键值须保持同步。这也就意味着,我们只需为一张表设定主键生成器,而另一张表的主键与之共享相同的主键值。

2.由查询语句可知主键关联使用的是左外连接,可以通过修改<one-to-one>中的fetch属性值为"select"修改成每次发送一条select语句的形式(必须将关联的两端的<one-to-one>中的fetch都设为"select"才有效)。但这会降低效率(因为需发送多条select语句)。

3.主键关联中默认使用立即加载策略,在<one-to-one>中设置lazy="proxy"是无法使用延迟加载策略的(即设置lazy属性是无效的)。

4.对于<one-to-one>中的constrained属性(关联约束)的说明:——constrained属性值默认为false,当constrained为false时,生成的两个表之间无任何参照关系,并且使用的是立即加载策略。

2.外键关联。本质上是一对多的蜕化形式。

对于外键关联的一对一关联关系,默认的加载策略是延迟加载,将其改为立即加载的方式:

——将lazy属性值改为false,如不希望user=(User)session.get(User.class, 1L);延迟加载,则需将User.hbm.xml中<many-to-one>的属性值改为false。

——将fetch属性设为"join",这比改lazy为false效率更高。

一对一单向外键关联与一对一双向外键关联在数据库的表的格式是一样的,区别在于

java程序中. 双向外键关联可通过Hibernate在两个类间互相调用彼此,而单向外键关联只能单方向调用.

共享主键方式就是限制两个数据表的主键使用相同的值,通过主键形成一对一的映射关系。

唯一外键就是一个表的外键和另一个表的唯一主键对应形成一对一映射关系,这种一对一的关系其实就是多对一的特殊情况。

hibernate一对一关联

原文地址:https://www.cnblogs.com/ztca/p/8150383.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved