JPA / Hibernate:在一个setter中设置多个值

时间:2014-03-27 07:44:49

标签: java hibernate java-ee jpa

我是一个实体,其中一个字段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的变化?

提前致谢,

亚历

1 个答案:

答案 0 :(得分:0)

您应该使用不直接访问该字段的setter。考虑到Hibernate / JPA实体被代理,因此在更改时会执行某些操作(使用方法)。

您可能还需要检查主要实体与“b”实体之间的关系,因此在设置新的“b”实体时automatically persisted (cascade operations)