Java hibernate延迟初始化问题:LazyInitializationException:延迟初始化角色集合失败

Java hibernate延迟初始化问题:LazyInitializationException:延迟初始化角色集合失败,java,hibernate,lazy-initialization,Java,Hibernate,Lazy Initialization,我想在我的持久层中管理一个事务, 但是,当我尝试懒洋洋地获取结果时,会出现以下错误: org.hibernate.LazyInitializationException:延迟初始化角色集合失败 我可以使用LockMode或任何其他方法来解决此问题吗? 是否可以在不进行任何事务的情况下通过id查找对象?您的问题是,当您尝试访问内容时,Hibernate会话已经关闭。Hibernate无法在没有会话的情况下加载内容。通常有两种方法可以缓解此问题: 在完成页面之前不要关闭会话。此模式称为“视图中的会话

我想在我的持久层中管理一个事务, 但是,当我尝试懒洋洋地获取结果时,会出现以下错误:

org.hibernate.LazyInitializationException:延迟初始化角色集合失败

我可以使用LockMode或任何其他方法来解决此问题吗?
是否可以在不进行任何事务的情况下通过id查找对象?

您的问题是,当您尝试访问内容时,Hibernate会话已经关闭。Hibernate无法在没有会话的情况下加载内容。通常有两种方法可以缓解此问题:

  • 在完成页面之前不要关闭会话。此模式称为“视图中的会话”,例如可以使用servlet过滤器实现

  • 在关闭会话之前初始化所有需要的内容。如果要初始化整个对象,可以使用Hibernate.initialize(对象)


  • 编辑:您不能在Hibernate中执行事务之外的任何操作。

    您的问题是,当您尝试访问内容时,Hibernate会话已经关闭。Hibernate无法在没有会话的情况下加载内容。通常有两种方法可以缓解此问题:

  • 在完成页面之前不要关闭会话。此模式称为“视图中的会话”,例如可以使用servlet过滤器实现

  • 在关闭会话之前初始化所有需要的内容。如果要初始化整个对象,可以使用Hibernate.initialize(对象)


  • 编辑:在Hibernate中,除了事务之外,您不能做任何事情。

    通常问题是对象的一个属性被延迟加载。您可以做的一件事是将其预加载到查询中:

    减价出售 where sale.date>:开始日期 左连接获取销售产品

    这将预取sale.product对象

    此网站有详细信息:


    -Dave

    典型的问题是对象的一个属性被延迟加载。您可以做的一件事是将其预加载到查询中:

    减价出售 where sale.date>:开始日期 左连接获取销售产品

    这将预取sale.product对象

    此网站有详细信息:


    -Dave

    您还可以查看hibernate的官方解决方案

    您还可以查看hibernate的官方解决方案

    预取属性的方法有很多,因此在会话关闭后它们就在那里:

  • 打电话给合适的getter。在将字段提取到bean中之后,它在会话关闭后就在那个里了
  • 在JPA中的bean描述符中使用适当的属性。您可能会使用
    @OneToMany(fetch=FetchType.EAGER)
    ,但也有类似的hibernate方法
  • 您可以在HQL查询中初始化字段(我不确定它是否在HQL中工作,但我认为它可以),查找
    fetchinto
    关键字
    有许多方法可以预取属性,因此在会话关闭后它们就在那里:

  • 打电话给合适的getter。在将字段提取到bean中之后,它在会话关闭后就在那个里了
  • 在JPA中的bean描述符中使用适当的属性。您可能会使用
    @OneToMany(fetch=FetchType.EAGER)
    ,但也有类似的hibernate方法
  • 您可以在HQL查询中初始化字段(我不确定它是否在HQL中工作,但我认为它可以),查找
    fetchinto
    关键字
    或者只是使用另一个ORM。。。就像Ebean ORM一样,延迟加载只起作用:)

    或者只使用另一个ORM。。。就像Eben ORM一样,延迟加载可以正常工作:)

    谢谢。我知道这是因为所欠会议已结束。您能否提供有关您提供的第二个解决方案的更多信息。谢谢。我知道这是因为所欠会议已结束。您能否提供有关您提供的第二个解决方案的更多信息。