首页  >  文章  >  数据库  >  为什么我的 Spring/Hibernate 应用程序中的延迟 Blob 加载失败?

为什么我的 Spring/Hibernate 应用程序中的延迟 Blob 加载失败?

Patricia Arquette
Patricia Arquette原创
2024-11-03 03:09:29887浏览

Why is Lazy Blob Loading Failing in My Spring/Hibernate Application?

Spring、Hibernate 中的延迟 Blob 加载

在您的 Web 应用程序的上下文中,您面临着延迟 Blob 加载的问题冬眠。为了澄清您的问题,您尝试在网页上显示的数据库记录是存储在 MySQL 中的大文件。

您的数据库配置涉及 MySQL、Tomcat、Spring 和 Hibernate。您已使用 @Lob、@Basic(fetch=FetchType.LAZY) 和 @Column 注释在实体类中定义了惰性 blob 字段。

但是,尽管将 blob 字段标记为惰性,您还是当数据量很大时遇到OutOfMemoryError。您还尝试在每行的 blob 字段中设置 null 值,这解决了内存问题,导致您相信延迟加载行为未按预期工作。

混乱的根源在于网上提供的相互矛盾的信息。虽然一些消息来源表明@Lob字段本质上是惰性的,但其他消息来源表明延迟加载可能无法在所有驱动程序和数据库中一致地工作。

潜在的解决方案:

  • 使用“假”一对一映射:按照文档中的建议,您可以为 LOB 字段创建单独的类并将它们与 fetch="select" 和lazy="true" 一对一映射到您的主要实体。这种方法确保 LOB 字段仅在明确请求时才加载。
  • 尝试字节码检测:一些用户报告使用 Javaassist 或 Cglib 等字节码检测库成功实现了延迟 blob 加载.
  • 查看文档和论坛:彻底搜索 Hibernate 和 Spring 文档,以及在线论坛,以获得针对您的具体情况的进一步见解和潜在解决方案。

以上是为什么我的 Spring/Hibernate 应用程序中的延迟 Blob 加载失败?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn