020 <one-to-one>、<many-to-one>单端关联上的lazy(懒加载)属性

<one-to-one>、<many-to-one>单端关联上,可以取值:false/proxy/noproxy(false/代理/不代理)

实例一:所有lazy属性默认(支持懒加载)

session = HibernateUtils.getSession();

tx = session.beginTransaction();

//不发出SQL语句,支持lazy(懒加载)

User user = (User) session.load(User.class, 3);

//发出SQL语句,只加载普通属性,集合中的数据不会加载

System.out.println("user.name=" + user.getName());

//不会发出SQL语句,只返回代理类

Group group = user.getGroup();

//发出SQL语句,因为现在真正使用对象

System.out.println("group.name=" + group.getName());

tx.commit();

实例二:将<many-to-one>中的lazy设置为false,其它默认

session = HibernateUtils.getSession();

tx = session.beginTransaction();

//不会发出SQL

User user = (User) session.load(User.class, 3);

//会发出SQL,发出两条SQL,分别是User和组

//因为<many-to-one>中的lazy=false,则会加载Group

System.out.println("user.name=" + user.getName());

//不会发出,已经在上面加载了数据

Group group = user.getGroup();

//不会发出,已经在上面加载了数据

System.out.println("group.name=" + group.getName());

tx.commit();

实例三:将<class>中的lazy设置为false,其它默认

session = HibernateUtils.getSession();

tx = session.beginTransaction();

//会发出SQL,因为<class>中的lazy=false

User user = (User) session.load(User.class, 3);

//不会发出SQL,已经在上面加载了

System.out.println("user.name=" + user.getName());

//不会发出,因为<class>标签上的lazy只对普通属性的影响

//<class>标签上的lazy不会影响到单端关联上的lazy特性

Group group = user.getGroup();

//会发出,因为开始使用对象

System.out.println("group.name=" + group.getName());

tx.commit();

时间: 2024-10-14 04:07:26

020 <one-to-one>、<many-to-one>单端关联上的lazy(懒加载)属性的相关文章

webpack4 系列教程(四): 单页面解决方案--代码分割和懒加载

本节课讲解webpack4打包单页应用过程中的代码分割和代码懒加载.不同于多页面应用的提取公共代码,单页面的代码分割和懒加载不是通过webpack配置来实现的,而是通过webpack的写法和内置函数实现的. 目前webpack针对此项功能提供 2 种函数: import(): 引入并且自动执行相关 js 代码 require.ensure(): 引入但需要手动执行相关 js 代码 本文将会进行逐一讲解. >>> 本节课源码 >>> 所有课程源码 1. 准备工作 此次代码

(Object-C)学习笔记 --OC的懒加载和单例方法

OC的懒加载 什么是懒加载: 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化. 懒加载的好处 (1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强 (2)每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合 懒加载的例子: #import "MusicTableViewController.h&quo

类和对象的方法与属性---懒加载与私有事件---单例与私有化构造函数

对象属性: 1.private修饰的属性:只能在本类内部访问,分类和外部都不能访问(彻底私有) 2.fileprivate修饰的属性:在本类和分类中可以访问,外部不能访问(部分私有) 3.直接用let或var修饰的属性:在本类.分类和外部都可以访问(开放) 4.在分类中只能声明计算属性,不能声明存储属性 1 // 属性:可以被外界访问 2 var name:String? 3 4 // private修饰的属性:只能在本类内部访问,分类和外部都不能访问 5 private var age:Str

ajax验证表单元素规范正确与否 ajax展示加载数据库数据 ajax三级联动

一.ajax验证表单元素规范正确与否 以用ajax来验证用户名是否被占用为例 1创建表单元素<input type="text" id="t"> 2在js中用keyup事件来进行操作 3创建ajax格式和内容:格式: $.ajax({ url:"哪一个服务端处理器", data:{"自己起名",所需要传给处理器的数据}, type:"post", dataType:"json"

清空FORM表单的几种方式 Reset 重加载

1. form中定义name <form name = "sbform" action="sb_add.php" method="post"> 用Reset清空 <input type="button" value="清空" onclick="sbform.reset()" /> 2.重加载 <input type="button" va

java的单例设计模式(对象的延时加载)考试专用

java的单例设计模式(对象的延时加载) ,称为:懒汉式    考试专用例:package day6; public class Single2 {  //考试专用  ,对象的延时加载 ,外号:赖汉式        private static Single2 s=null;        private Single2(){            }        public static synchronized Single2 getInstance(){  //synchronized

【 Linux 】单台服务器上并发TCP连接数

单台服务器上并发TCP连接数    问题:一台服务器到底能够支持多少TCP并发连接呢? 1. 文件描述符限制:    对于服务器来说,每一个TCP连接都要占用一个文件描述符,一旦文件描述符使用完,新的连接到来返回给我们的错误是"Socket/File:Can't open so many files" 这时,你需要明白操作系统可以打开最大文件数的限制. 进程限制(用户限制):            执行 ulimit -n 输出1024,说明对于一个进程而言最多只能打开1024个文件,

SEPIC 单端初级电感转换器 稳压器 -- Zeta 转换器

single ended primary inductor converter 单端初级电感转换器 SEPIC(single ended primary inductor converter) 是一种允许输出电压大于.小于或者等于输入电压的DCDC变换器. 输出电压由主控开关(三极管或MOS管)的占空比控制. 这种电路最大的好处是输入输出同极性. 尤其适合于电池供电的应用场合,允许电池电压高于或者小于所需要的输入电压. 比如一块锂电池的电压为3V ~ 4.2V,如果负载需要3.3V,那么SEPI

页面加载完成后表单获得焦点

当页面加载完成后,输入框获得焦点的jquery写法: $(document).ready(function(){ $("#recordId").focus(); }); 页面如图:每次页面加载完成后"体检编号"都会获得焦点 页面加载完成后表单获得焦点,布布扣,bubuko.com