【发布时间】:2011-09-16 09:47:58
【问题描述】:
当我在打开的休眠会话上调用 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会被更新,我该如何防止呢?
感谢您的帮助!
【问题讨论】:
标签: java mysql hibernate jakarta-ee