在person.hbm.xml文件中
class的属性
lazy="true"(默认):延迟检索
lazy="flase":立即检索 ,只对load()方法有效
set的属性:
lazy:决定orders集合被初始化的时机
fetch:select ,subselect,join(lazy将被忽略)
batch-size:批量检索减少select语句的数目,提高延迟检索或立即检索的运行性能
set的lazy属性:
1.1-n或n-n的集合属性默认使用懒加载检索策略。
2.可以通过设置set的lazy属性来修改默认的检索策略。默认为true,并不建议设置为false。
3.lazy还可以设置为extra。增强的延迟检索。该取值会尽可能的延迟集合初始化的时机。
set元素的batch-size属性:
设定一次初始化set集合的数量。
fetch:确定初始化orders集合的方式
1.默认值为select。通过正常的方式来初始化set元素
2.可以取值为subselect。通过子查询的方式来初始化所有的set集合,
子查询作为where子句的in的条件出现,子查询查询所有1的一端的ID。
此时lazy有效,但batch-size失效。
3.若取值为join。则
3.1在加载1的一端的对象时,使用迫切左外连接(使用左外连接进行查询,且把集合属性进行初始化)的方式检索n的一端的集合属性。
3.2忽略lazy属性
3.3HQL查询忽略fetch=join的取值
一对多和多对多检索:
1.lazy取值为proxy和false分别代表对应的属性采用延迟检索和立即检索。
2.fetch取值为join,表示使用迫切左外连接的方式初始化n关联的1的一端的属性
忽略lazy属性。
3.batch-size,该属性需要设置在1那一段的class元素中:
<class name="Customer" table="CUSTOMERS" lazy="true" batch-size="5">
作用:一次初始化1的一端代理对象的个数
class的属性
lazy="true"(默认):延迟检索
lazy="flase":立即检索 ,只对load()方法有效
set的属性:
lazy:决定orders集合被初始化的时机
fetch:select ,subselect,join(lazy将被忽略)
batch-size:批量检索减少select语句的数目,提高延迟检索或立即检索的运行性能
set的lazy属性:
1.1-n或n-n的集合属性默认使用懒加载检索策略。
2.可以通过设置set的lazy属性来修改默认的检索策略。默认为true,并不建议设置为false。
3.lazy还可以设置为extra。增强的延迟检索。该取值会尽可能的延迟集合初始化的时机。
set元素的batch-size属性:
设定一次初始化set集合的数量。
fetch:确定初始化orders集合的方式
1.默认值为select。通过正常的方式来初始化set元素
2.可以取值为subselect。通过子查询的方式来初始化所有的set集合,
子查询作为where子句的in的条件出现,子查询查询所有1的一端的ID。
此时lazy有效,但batch-size失效。
3.若取值为join。则
3.1在加载1的一端的对象时,使用迫切左外连接(使用左外连接进行查询,且把集合属性进行初始化)的方式检索n的一端的集合属性。
3.2忽略lazy属性
3.3HQL查询忽略fetch=join的取值
一对多和多对多检索:
1.lazy取值为proxy和false分别代表对应的属性采用延迟检索和立即检索。
2.fetch取值为join,表示使用迫切左外连接的方式初始化n关联的1的一端的属性
忽略lazy属性。
3.batch-size,该属性需要设置在1那一段的class元素中:
<class name="Customer" table="CUSTOMERS" lazy="true" batch-size="5">
作用:一次初始化1的一端代理对象的个数