【发布时间】:2023-03-09 16:42:01
【问题描述】:
我有一个将树更新到数据库的过程,并在此过程中执行读取以检查重复实体。
我发现在此过程中途尝试执行 criteria.uniqueResult() 会导致以下错误:
org.hibernate.PropertyValueException: 非空属性引用空或 瞬态值
挖掘堆栈跟踪,我看到 uniqueResult() 正在刷新会话,尝试执行尚未准备好进入数据库的更新。
at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
at org.hibernate.event.def.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:154)
at org.hibernate.event.def.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:145)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:88)
at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:58)
at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:996)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1589)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)
at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:328)
at com.inversion.dal.BaseDAO.findUniqueByCriterion(BaseDAO.java:59)
我这里设置错了吗?
非常感谢任何帮助。
马蒂
【问题讨论】:
标签: java hibernate transactions