1

JPA 提供了级联,可用于自动持久化/更新/删除特定实体所依赖的其他实体。假设我有三个实体:Job、BankAccount 和 Person(与前两个实体具有 OneToMany 关系)。在没有级联事件的情况下,我会写:

person.addJob(job);
person.addBankAccount(bankAccount);

em.persist(job);
em.persist(bankAccount);
em.persist(person);

级联事件(例如 CascadeType.PERSIST 类型)使我能够省略前两个 persist() 调用,并确保单个em.persist(person);调用也将持久化依赖实体。

现在,这使得作用于实体的代码与其内部紧密耦合。我管理实体的方式现在与我在实体中使用的注释紧密绑定。由于它引入了额外的耦合,这可以被认为是一种不好的做法吗?

4

1 回答 1

3

并非如此,利用级联操作是相当标准的做法。

您应该创建集成测试来验证在您的域上注释的任何级联实际发生。

于 2012-11-24T22:37:42.637 回答