の 2 つのフィールド ' 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
永続的な状態にする方法はありますか?