当前位置: 首页 > 知识库问答 >
问题:

冬眠懒散的负载。最佳做法。怎么了?

锺离嘉茂
2023-03-14

我正在Spring和Hibernate上编写一个测试服务器

在执行代码期间,我收到了一个 LazyInitializationException。

我发现了两个糟糕的解决方案:“视图中的开放会话”和“hibernate.enable_lazy_load_no_trans”。我没有使用它们。

我找到了一个可行的解决方案,但正如其他人所写,它也不是很好。在实体上方,我放置了一个注释@Proxy(lazy=false)。

请告诉我,在项目中有什么更好的改变,一切都可以正常工作?

链接到GitHub中的项目。

该项目非常小,仅包含八个小.java和两个 .properties 文件。

提前感谢您的帮助!

共有1个答案

经福
2023-03-14

这里的问题是,您试图在hibernate事务之外延迟加载一些实体。在我看来,最好的方法是在一个事务中执行与实体协同工作的代码。您需要配置事务管理器(如果还没有的话)并将@Transactional(来自hibernate包)放在方法上。

 类似资料:
  • 我知道那次会议。save()保存瞬态对象。我看到它还有,还有。 我想,那么等价于,是吗? 如果我有一个对象已经存在于DB上,并且我它,是否会包含另一行,其字段是否会更新,或者它会被忽略而什么都没发生?

  • 问题内容: 用JavaScript伪造函数重载的最佳方法是什么? 我知道不可能像其他语言一样重载Javascript中的函数。如果我需要一个函数有两个用途和这是最好的/优选的方法: 首先使用不同的名称 使用类似的可选参数 使用参数数量 检查参数类型 或如何? 问题答案: 使用参数进行函数重载的最佳方法是不检查参数长度或类型;检查类型只会使您的代码变慢,并且您可以享受数组,空值,对象等的乐趣。 大多

  • 另一种方法是使用Crieteria关联,但关联只能与和一起工作! 请在这里帮帮我。

  • 问题内容: 多线程Java应用程序中进行进程间通信的最佳方法是什么? 它应该是高性能的(因此请不要使用JMS),易于实现且可靠,以便对象和数据只能绑定到一个线程? 任何想法欢迎! 问题答案: 假设场景1是JVM,那么实际上应该是多个线程,尤其是各种Queue实现,都是java.util.concurrent。但是,在此之上的抽象可能很好,Jetlang看起来非常有趣,轻量级的Java消息传递。

  • 问题内容: 我整理了一个非常类似于flickr照片流功能的脚本。两个缩略图彼此相邻,当您单击下一个或上一个链接时,下一个(或上一个)两个图像就会滑入其中。 当前,页面加载时将加载两个图像。第一次使用nxt / prv时,随后的两个图像或前两个图像通过ajax加载,第一个图像的ID在url中传递,而两个新图像的HTML通过ajax返回并显示。 足够简单,但是我不得不考虑在连接速度慢或服务器负载重的情

  • 问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我过去曾经做过Java和JSP编程,但是我是Java Server Faces的新手,并且想知道JSF开发是否有一套最佳实践。 问题答案: 一些提示:了解JS