首页 > 解决方案 > 无法锁定未保存的瞬态实例

问题描述

我正在努力解决我的 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

标签: java

解决方案


异常消息清楚地表明,您无法锁定数据库中尚不存在的对象(此类对象称为瞬态)。该lock()调用将锁定数据库中的行。您正在尝试锁定一个瞬态对象,这意味着 Hibernate 甚至不知道该对象在数据库中是否有相应的行。


推荐阅读