hibernate延迟加载
1、为了提高数据库的执行效率,只有在需要数据的时候才从数据库中查询加载数据
如果session关闭,那么没有加载的数据就会无法进行加载。
2、延迟加载分类
1、实体类别的加载
在实体类映射文件的Class标签中加入lazy=“true|false”属性
此延迟加载只使用与session.load(类名.class,id)
2、集合属性的延迟加载
在实体类映射文件的set标签中加入lazy=“true|false|extra”属性
当lazy=“extra”的时候是延迟的数据中需要什么就加载什么数据
如需要name属性,调用getName()时就之后加载name属性
3、<many-to-one lazy="proxy|no-proxy|false">
当lazy=“"proxy”时和true前面一样
当lazy=“no-proxy”时需要在编译时加强字节码,否则无效
4、普通属性的验证加载
<property lazy="false|true">
基本没用
hibernate数据抓取
1、<many-to-one fetch="select|join">
默认select 获取关联数据的时候单独发送SQL语句
fetch=join 通过左连接查询获取关联数据
2、<one-to-one fetch="join|select">
和上面一样
3、<set fetch="select|subselect|join">
fetch= subselect 通过自查询获取关联数据
1、为了提高数据库的执行效率,只有在需要数据的时候才从数据库中查询加载数据
如果session关闭,那么没有加载的数据就会无法进行加载。
2、延迟加载分类
1、实体类别的加载
在实体类映射文件的Class标签中加入lazy=“true|false”属性
此延迟加载只使用与session.load(类名.class,id)
2、集合属性的延迟加载
在实体类映射文件的set标签中加入lazy=“true|false|extra”属性
当lazy=“extra”的时候是延迟的数据中需要什么就加载什么数据
如需要name属性,调用getName()时就之后加载name属性
3、<many-to-one lazy="proxy|no-proxy|false">
当lazy=“"proxy”时和true前面一样
当lazy=“no-proxy”时需要在编译时加强字节码,否则无效
4、普通属性的验证加载
<property lazy="false|true">
基本没用
hibernate数据抓取
1、<many-to-one fetch="select|join">
默认select 获取关联数据的时候单独发送SQL语句
fetch=join 通过左连接查询获取关联数据
2、<one-to-one fetch="join|select">
和上面一样
3、<set fetch="select|subselect|join">
fetch= subselect 通过自查询获取关联数据