我使用的是JPA2.1和hibernate4.3.8,我已经配置了presidence.xml以允许延迟加载我已经添加
<property name="hibernate.enable_lazy_load_no_trans" value="true" />
进入属性部分但是我仍然得到LazyInitializtionException,这是什么问题?
swvgeqrz1#
hibernate.enable_lazy_load_no_trans是一个反模式,你永远不应该使用它,因为在初始持久性上下文之外获取的每个惰性关联都需要一个数据库连接,这将给底层事务日志和JDBC连接池带来压力。此外,hibernate.enable_lazy_load_no_trans容易出现N+1查询问题。有时,您甚至不需要实体,DTO投影甚至更好。
hibernate.enable_lazy_load_no_trans
bnlyeluc2#
试着像这样输入“true”:<property name="hibernate.enable_lazy_load_no_trans">true</property>对我很有效。
<property name="hibernate.enable_lazy_load_no_trans">true</property>
olqngx593#
org.hibernate.LazyInitializationException:如果你正在使用getReferenceById(id)方法,请在application.properties中使用此方法
org.hibernate.LazyInitializationException
getReferenceById(id)
application.properties
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
3条答案
按热度按时间swvgeqrz1#
hibernate.enable_lazy_load_no_trans
是一个反模式,你永远不应该使用它,因为在初始持久性上下文之外获取的每个惰性关联都需要一个数据库连接,这将给底层事务日志和JDBC连接池带来压力。此外,
hibernate.enable_lazy_load_no_trans
容易出现N+1查询问题。有时,您甚至不需要实体,DTO投影甚至更好。
bnlyeluc2#
试着像这样输入“true”:
<property name="hibernate.enable_lazy_load_no_trans">true</property>
对我很有效。
olqngx593#
org.hibernate.LazyInitializationException
:如果你正在使用
getReferenceById(id)
方法,请在application.properties
中使用此方法