Hibernate:延迟加载不适用于集合上的一对多映射

2024-02-19

我将 Spring 与 Hibernate 一起使用来为 Liferay 门户服务器开发 Portlet。我现在基本上有两个实体,A 和 B,其中 A 可能包含许多 B。所以这就是两者之间的一对多映射。

<set cascade="all" lazy="true" name="comments" order-by="creationDate desc">
   <key column="lfpn_pinboardentries_idPinboardEntry" not-null="true"/>
   <one-to-many class="Comment"/>
</set>

在DAO层中实体A对应的DAO中,我继承自spring提供的“HibernateDaoSupport”,因此典型的数据检索如下所示:

...
public A getA(long id) {
  return (A) getHibernateTemplate().get(A.class, id);
}
...

如果我有“lazy=false”,一切正常,但是一旦我切换到“lazy=true”,它就会出现以下错误:

org.hibernate.LazyInitializationException:未能延迟初始化角色集合:com.lifepin.entities.PinboardEntry.comments,没有会话或会话被关闭

有人对可能出现的问题有什么建议或提示如何解决它吗?

Thanks!


如果您在一个请求中加载了该对象,然后在不访问延迟加载属性的情况下将该对象保存在会话中,那么您通常会收到此错误。如果您随后在不同的请求中尝试访问延迟加载的属性,您将收到此异常。

简单地说:最初加载对象的 Hibernate 会话已关闭。在不同的 Hibernate 会话中访问该对象的延迟加载属性时会导致此异常。

您必须将对象重新加载到当前的 Hibernate 会话中才能延迟加载属性

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hibernate:延迟加载不适用于集合上的一对多映射 的相关文章

  • Spring Hibernate中的@Transient方法调用

    我有一个 Pojo 类 在其中创建一个未与数据库表映射的字段 所以我必须声明字段Declaration和setter和getter方法 Transient 否则会显示错误 Transient private String docHistor
  • Spring MVC 和复选框

    我正在使用 Spring MVC 3 0 并且不能完全看到这个问题的所有部分 我的控制器将生成一个域对象列表 假设有一个简单的 User 对象 具有firstName lastName age 和role 属性 我想在表中输出该用户列表 每
  • Lombok @Builder 和 JPA 默认构造函数

    我将 Lombok 项目与 Spring Data JPA 一起使用 有什么办法可以连接龙目岛 Builder使用 JPA 默认构造函数 Code Entity Builder class Person Id GeneratedValue
  • Spring MVC 中 init binder 的用途是什么

    这是互联网上 init binder 的代码 InitBinder public void initBinder WebDataBinder binder SimpleDateFormat dateFormat new SimpleDate
  • Java Spring Rest 验证配置属性访问

    我有一个 Spring JSON RestAPI 它使用注释驱动的输入验证 Valid 当我尝试验证另一个对象内的对象时 出现以下错误 java lang IllegalStateException JSR 303 validated pr
  • Spring Security SAML:让 块出现在

    我很难让 Spring Security SAML 与 ADFS 2 0 一起使用 根据我当前的配置 生成的AuthnRequest看起来像这样
  • 汉字编码?

    我有一个用例 我通过发布请求向 spring 控制器提交参数 在控制器中 我正在读取参数并执行一些操作 之后 我将这些参数作为请求参数的一部分发送到其他 URL 在这里我无法处理中文字符 它变得乱码 我现在正在做的行动 1 我将下面的中文文
  • 不想保留一对一的实体

    假设我有两节课Employee and Department In Employee我已经写了 OneToOne fetch FetchType EAGER cascade CascadeType ALL JoinColumn name d
  • C3P0:生产中未返回的连接超时?

    参数unreturnedConnectionTimeout给定时间段后未返回的连接超时 我正在尝试决定是否应该在我的制作中使用它persistence xml 使用它的一大优点是连接池将能够从泄漏的连接中恢复 一个很大的缺点是泄漏的连接将很
  • 错误:列“this_.phitorsionangle”必须出现在 GROUP BY 子句中或在聚合函数中使用

    我在执行 sql 查询时遇到了一些问题 我正在使用 Hibernate Criteria 来构建查询 我通过按一定间隔 binSize 舍入值然后对它们进行分组来从数据库创建一些容器 当我直接在 SQL 中使用查询尝试时 效果非常好 SEL
  • 如何更改 Hibernate CharacterTypeDescriptor 以处理空列值

    我们的问题是我们无法获取数据 其中包括empty长度为 0 的字符串 来自旧数据库 由于StringIndexOutOfBoundsExceptiion源自Hibernate的CharacterTypeDescriptor 我们希望更改 H
  • JPA 乐观锁与同步 Java 方法

    使用 JPA 乐观锁定 我们可以通过 Version 字段控制数据库表是否已被另一个事务同时更新 从而允许在数据库中存储可靠的数据 如果一个Java应用程序只有一个CRUD服务负责数据库中的特定实体 我们也可以同步其方法并管理信息在数据库中
  • 使用 Spring MVC 在 jar 文件中显示 jsp 页面

    我正在使用 Spring MVC 3 2 2 在 java 中开发一个 Web 应用程序 我在从 jar 文件中加载 jsp 页面时遇到问题 Spring MVC Web应用程序具有以下结构 META INF WEB INF spring
  • Spring security:从 4.0 迁移到 5.0 - 错误 - 没有为 id“null” 映射的 PasswordEncoder [已关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 java lang IllegalArgumentException There is no PasswordEncoder ma
  • Spring MVC:通用 DAO 和服务类

    我正在 Spring MVC 中编写网页 我使用 Generic DAO 编写了所有 DAO 现在我想重写我的服务类 我该如何写 通用服务 我的 DAO 如下 DAO package net example com dao import j
  • FetchType.LAZY 不适用于休眠中的 @ManyToOne 映射

    简而言之 我的 Child 类与 Parent 类之间存在多对一的关系 我想加载所有的孩子 而不必加载他们的父母详细信息 我的孩子班级是 Entity public class Child implements Serializable I
  • Spring 5.0.3 依赖问题

    升级到 spring 5 0 3 后我遇到以下问题 09 25 29 141 ERROR org jboss msc service fail ServerService Thread Pool 175 MSC000001 Failed t
  • Hibernate 标准接受 %% 值

    我正在使用下面的 Hibernate 代码来过滤workFlowName crt add Restrictions like workFlowName workFlow MatchMode ANYWHERE crt is the crite
  • 使用 Java 8 Spring 4 + MyBatis 集成问题

    使用 Java 8 1 8 0 60 Spring 4 2 1 和 MyBatis 3 3 0 时遇到以下异常 Sep 29 2015 11 02 58 AM org springframework context annotation A
  • 使用 Grails GORM 从旧数据库中的 char 字段中去除尾随空格

    映射时去除尾随空格的可能解决方案有哪些char遗留数据库中的字段 我看到以下选项 Calling trim 在使用时 控制器 视图等 重写属性访问器以返回 trim 使用 Hibernate UserType 修剪空格 我倾向于重写属性访问

随机推荐

  • Android:ListView 中的按钮未接收 onClick 事件

    我正在制作一个日期选择器活动 看起来像滚动的 30 天月份 日历 想想 Outlook 日历 日期选择器包含 MonthView 视图的 ListView 用于滚动 每个视图都是各个日期的 TableView MonthView 中的每一天
  • FPGA 有哪些实际应用?

    我对我的程序为一个小型七段显示器提供动力感到非常兴奋 但是当我向不在现场的人展示它时 他们总是说 那么你能用它做什么 我永远无法给他们一个简洁的答案 谁能帮我吗 第一 它们不需要具有易失性存储器 事实上 大厂商 Xilinx Altera
  • 如何从输出迭代器获取值类型?

    假设我有一个 C 容器 例如 MyContainer 包含的对象存储为void 指针 迭代此容器元素的唯一方法是通过两个接口函数 getFirstElem MyContainer const void 输出容器的第一个元素 getNextE
  • 为什么组件中的 React Native 函数没有“function”关键字?

    在 javascript 函数中声明为function myFuncName 但 React React Native 函数省略了该关键字 这是 ES6 JSX 或 React 特有的吗 这是ES6的一个特性 更多信息请访问https ba
  • C#/ODP.NET:大 IN 子句解决方法

    我们有一个 C 组件 可以处理将任意大小的元素列表附加到半任意 SQL 的 IN 子句中SELECT查询 本质上这可以归结为接收类似的东西 SELECT COUNT FROM a WHERE b IN 其中 是允许组件修改的查询的唯一部分
  • Python - 将日期戳添加到文本文件

    在Python v2中 有没有办法获取日期 时间戳并将其放入创建新的文本文件中 IE 当我想创建一个新的文本文件并将程序的内容写入其中时 它将创建一个包含时间 日期的新文本文件 谢谢你的帮助 import datetime def time
  • Google API oauth httpd 服务器与 Python 中的 SABNzbd+ 冲突

    我正在编写一个与 Google API 交互的 Python 应用程序 并需要通过 oauth2 进行用户身份验证 我目前正在设置一个本地身份验证服务器 以接收从 Google 的 oauth 服务器返回的 oauth2 身份验证代码 基本
  • 在 IE8 中可单击带警报的禁用按钮(Asp.net 网站中的浏览器兼容性问题)

    我已经禁用了链接按钮和图像按钮 位于链接按钮内 以便我可以显示警报 并且它在 Chrome 中工作正常 但是当我在 IE8 中打开它时 图像被禁用 但是当我单击它时 它会显示popup 您确定要删除该用户吗 为什么我在 IE8 和 IE7
  • ClassNotFoundException:使用服务组合时未找到 com.mysql.jdbc.Driver

    我正在使用 servicemix 4 4 1 和 maven 3 0 4 我对 servicemix java 世界非常陌生 我的主要知识是 c php 我已将以下内容添加到我的路线之一
  • 恢复后在 Android 中丢失 OpenGL 纹理

    我的游戏运行正常 除非我按下 HOME 按钮然后继续 需要做什么才能再次使用纹理 我尝试在 GLSurfaceView 上调用 onPause 和 onResume 当调用活动的 onPause 和 onResume 时 有什么想法我可能做
  • WCF MSMQ 单元测试

    我使用 WCF 创建了一个自定义 msmq 服务 它使用自定义绑定 因为它需要在通道层执行一些自定义逻辑 在通道层调用另一个 wcf 服务 该服务将成为未来几年我们系统的核心功能 我想尽我所能确保服务稳健 但是 我不知道从哪里开始 即测试响
  • 为什么.NET的条件属性会导致副作用被消除?

    我读到了关于Conditional今天的属性 根据 MSDN 正在申请ConditionalAttribute方法的调用指示编译器不应将对该方法的调用编译为 Microsoft 中间语言 MSIL 除非与关联的条件编译符号Condition
  • 使用'printf'在C中打印%符号[重复]

    这个问题在这里已经有答案了 我正在尝试打印一个 标志使用printf https en wikipedia org wiki Printf format string 我尝试过但没有运气 printf 我确信这真的很简单 但我刚刚开始使用
  • 如何提示内容管理器选择器直接在 ACTION_OPEN_DOCUMENT_TREE 的可选位置上打开

    当你使用ACTION OPEN DOCUMENT TREE要选择在 Android 11 中存储文件的路径的权限 默认情况下 默认的 Android 内容管理器会在最近使用的路径和按钮上打开 使用此文件夹 由于某种原因 即使该路径是可访问路
  • C++中如何为同一个类定义不同的类型

    我希望有几种类型共享相同的实现 但在 C 中仍然是不同的类型 为了用一个简单的例子来说明我的问题 我想要一个苹果 橙子和香蕉的类 它们都具有相同的操作和相同的实现 我希望它们有不同的类型 因为我想通过类型安全来避免错误 class Appl
  • 从“WordOpenXML”转换为内存中 System.IO.Packaging.Package

    当使用 VSTO 2012 操作 MS Word 文档时 我看到该文档有一个WordOpenXMLstring 属性 它是构成 docx 包的所有文件的 XML 表示形式 当将此 Word 文档保存为 docx 时 这些文件将保存到磁盘 我
  • 合并集合并保持顺序的最有效方法?

    我有3个频道 byte Red byte Green byte Blue 我需要将它们中的所有值复制到byte Red Length Green Length Blue Length PA 以便 PA 0 Red 0 PA 1 Green
  • 如何在套接字关闭时唤醒 select()?

    我目前正在使用选择循环来管理代理中的套接字 该代理的要求之一是 如果代理向外部服务器发送消息并且在一定时间内没有得到响应 则代理应该关闭该套接字并尝试连接到辅助服务器 关闭发生在单独的线程中 而选择线程则阻塞等待活动 我无法弄清楚如何专门检
  • Visual Studio Code 与 SQL 格式

    我下载了 Visual Studio Code 认为编写 T SQL 脚本并在写入时自动格式化会很好 我已经安装了 mssql 扩展 创建新文件时 该文件是一个简单的纯文本 没有扩展名 Untitled 1 我究竟如何告诉 VS Code
  • Hibernate:延迟加载不适用于集合上的一对多映射

    我将 Spring 与 Hibernate 一起使用来为 Liferay 门户服务器开发 Portlet 我现在基本上有两个实体 A 和 B 其中 A 可能包含许多 B 所以这就是两者之间的一对多映射