我是一个实体,其中一个字段B可能依赖于字段A(仅适用于某些情况)。为了确保在需要时更新它们(以避免其他人使用该实体忘记依赖关系)我尝试过这样的事情:
public void setA(A a) {
this.a = a;
if (condition) {
this.b = someCalculation(a);
// setB(someCalculation(a)); Doesn't work either!
}
}
执行代码并正确填充B的值。但是,B不会持久存在。
这样的事情是不可能的吗?为什么hibernate不知道B的变化?
提前致谢,
亚历
答案 0 :(得分:0)
您应该使用不直接访问该字段的setter。考虑到Hibernate / JPA实体被代理,因此在更改时会执行某些操作(使用方法)。
您可能还需要检查主要实体与“b”实体之间的关系,因此在设置新的“b”实体时automatically persisted (cascade operations)