1
当我在开放的hibernate会话中调用Session.flush()时会发生什么?我更改了所有实体(保留,删除,更新),并将保存/更新/删除写入数据库,或者会话中的所有实体都写入数据库,并且如果我没有对它们调用更新等?什么是由Hibernate的Session.flush刷新()
我发现很多关于这方面的Hibernate资源,但没有给出我准确的答案,我正在寻找。
一个简单的例子:
class A {
@OneToOne
public B b;
public int x;
}
class B {
@OneToOne(mappedBy="b")
public B b;
public int y;
}
// Example
A a = aDao.load(...);
a.x = 20;
b.y = 15;
aDao.update(a);
// Question: Will this update b's value to 15 in the database?
session.flush();
若B将在上面的例子中被更新,我怎样才能防止它?
感谢您的帮助!
他们不会。通过persister的类型检查对象是否相等(可能是字符串类型的名称) – bestsss 2011-06-16 13:55:10
另外,第一级高速缓存刷新也很重要,因为它在长时间绘制的事务中变得很大。 – bestsss 2011-06-16 13:58:40