以下是我的代码和平
public ATMRecord store(ATMRecord atmRecord) {
Session session = HibernateUtility.getSession();
try {
Transaction tx = HibernateUtility.beginTransaction(session);
logger.info("saving an ATMRecord[" + atmRecord + "]");
try {
session.lock(atmRecord, LockMode.UPGRADE);
session.merge(atmRecord);
} catch (Throwable e) {
e.prinstacktrace());
return null;
}
HibernateUtility.commitTransaction(tx, session);
return record;
} finally {
HibernateUtility.closeSession(session);
}
当我尝试保存ATMRecord对象时,我面临异常 org.hibernate.TransientObjectException:无法锁定未保存的瞬态实例。 ATMRecord是简单的pojo对象,表示一行(未在当前代码中序列化实现)。没有与此相关的连接或复杂映射。 我怎样才能克服上述问题。 提前谢谢..
答案 0 :(得分:0)
你不能。 lock()
调用将锁定数据库中的行。你试图锁定一个瞬态对象,这意味着Hibernate甚至不知道对象是否数据库中的相应行。