org.hibernate.LazyInitializationException

来源:互联网 发布:无限的未知知乎 编辑:程序博客网 时间:2024/06/01 13:25

在一对多和多对一的时候,默认的lazy为true,多表的时候,懒加载是默认的,所以在页面和servlet交互的时候,要将lazy改为false



勤加载和懒加载

勤加载:调用的时候就会先检索一级缓存,如果一级缓存存在对应的主键对象,就不会发起数据库的查询,将缓存中的数据值返回,如果一级缓存没有,就会检索是否存在二级缓存,如果二级缓存存在就返回,否在就发起SQL语句,到达数据库。

懒加载:又叫延迟加载。提升效率,如果lazy设置为false,那么load和get的加载机制一模一样,如果lazy为true,调用load的时候并不会开启查询,智慧创建对象将要查询的逐渐的值赋值给新对象,第一次调用非主键属性的时候,才会检索一级缓存,查询缓存是否拥有对应主键的对象,如果存在就直接赋值,如果缓存中没有,才会发起SQL语句到数据库中。