我想从Hibernate中检索一个对象纯粹是为了阅读它的值。我应该怎么做呢?
get()+ evict()+ flush()?
主要是我想检查一个值是否已经改变:
Foo foo = getModifiedFoo();
Foo oldFoo = session.get(Foo.class, foo.getId());
if (foo.getBar() != oldFoo.getBar()) {
throw YouAFooException();
}
session.saveOrUpdate(foo);
我猜这会给我一个"对象已经在会话"某种例外,所以我想知道我应该怎么做。
答案 0 :(得分:2)
使用merge()
,它将分离的实体的状态复制到其附加的对应实体,而不是像saveOrUpdate()
那样附加分离的实体。