java - 无法锁定未保存的瞬态实例
问题描述
我正在努力解决我的 Java EE 项目中的一个问题。我无法弄清楚我的错误是什么。如果有人可以帮助我,我将非常感激。
这就是问题:
Caused by: org.hibernate.TransientObjectException: cannot lock an unsaved transient instance: com.carveras.escola.model.Alumne
at org.hibernate.event.internal.DefaultLockEventListener.onLock(DefaultLockEventListener.java:74)
at org.hibernate.internal.SessionImpl.fireLock(SessionImpl.java:751)
at org.hibernate.internal.SessionImpl.fireLock(SessionImpl.java:744)
at org.hibernate.internal.SessionImpl.access$1200(SessionImpl.java:204)
at org.hibernate.internal.SessionImpl$LockRequestImpl.lock(SessionImpl.java:2682)
at com.carver_as.carverjsf.model.CarverPureHibernate5DAO.reattach(CarverPureHibernate5DAO.java:438)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:206)
at com.sun.proxy.$Proxy126.reattach(Unknown Source)
at com.carveras.escola.web.EditaPersonaBean.init(EditaPersonaBean.java:55)
... 82 more
解决方案
异常消息清楚地表明,您无法锁定数据库中尚不存在的对象(此类对象称为瞬态)。该lock()
调用将锁定数据库中的行。您正在尝试锁定一个瞬态对象,这意味着 Hibernate 甚至不知道该对象在数据库中是否有相应的行。
推荐阅读
- django - 如何将通用视图转换为具有模式列表的基于类的视图
- excel - VBA 使用子参数中的值填充不同的对象
- node.js - 托管使用 ExpressJS 进行后端操作的 REACT 应用程序的步骤是什么?
- c# - 程序找不到路径部分视图
- postgresql-8.2 - 如何将多个函数保存为 Postgresql 中的每个文件(* .sql)?
- c - 为什么 fread() 函数没有到达文件末尾并且循环无限地继续,同时从文件中读取结构?
- http - 如何限制 IBM Integration Bus 中每个 IP 地址的 HTTP 请求数?
- java - Logstash.bat 找不到主类错误
- css - 在一个角度应用程序中动态切换两个styles.css文件
- spring-boot - Spring-Boot Server 未运行,在 Initializing Spring FrameworkServlet 'dispatcherServlet 后挂起