【问题标题】:org.hibernate.LazyInitializationException: could not initialize proxy - no Session when trying to initializeorg.hibernate.LazyInitializationException:无法初始化代理 - 尝试初始化时没有会话
【发布时间】:2019-10-24 13:38:19
【问题描述】:

我有一个名为 Player 的 LAZY fetch 实体。我正在尝试手动让休眠对其进行初始化,但我收到了该错误,就好像我在尝试在初始化之前使用 Player 实体一样。这是我在第一行收到错误的示例:

    if (!Hibernate.isInitialized(contest.getPlayer())) Hibernate.initialize(contest.getPlayer());
    playerName = contest.getPlayer().getName();

(请注意,不能选择进行 Player 实体 EAGER 获取,因为它会导致太多延迟问题)

【问题讨论】:

    标签: java hibernate initialization lazy-initialization


    【解决方案1】:

    您不能在事务之外使用 Hibernate.initialize()。您可以在获得查询结果后立即使用 Hibernate.initialize(我的意思是在同一个事务中),或者如果您想稍后对其进行初始化 - 编写单独的查询来获取播放器。

    【讨论】:

    • 感谢您的回复。忘了说,这部分代码有@Transactional注解。
    猜你喜欢
    • 2016-07-29
    • 2011-12-01
    • 2014-04-21
    • 2019-05-10
    • 2015-11-09
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多