我需要更新from
的两个字段“to
”和“bp
”。 p
也随bp
一起被提取。禁用自动刷新,因此我必须明确刷新。
Query q = session
.createQuery(" select distinct bp from BP bp "
+ " join fetch bp.p "
+ " where bp.id = 2");
bp = (BP) q.list().get(0);
session.getTransaction().commit();
session = test.services.HibernateUtil
.getSessionFactory().getCurrentSession();
session.beginTransaction();
bp.setFrom(new Date());
bp.setTo(new Date());
session.update(bp);
session.flush();
session.getTransaction().commit();
当我运行上面的代码时,它显示以下异常:
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: model.P
在p
方法尝试插入违反save()
的新记录时,我无法保存unique key constraint
。
当我在刷新之前尝试更新p
时,我遇到以下异常:
java.lang.NullPointerException
at org.hibernate.type.LongType.next(LongType.java:79)
at org.hibernate.engine.Versioning.increment(Versioning.java:131)
有没有办法让p
状态持久?
答案 0 :(得分:0)
请您在刷新会话之前尝试事务提交。
它应该有用。