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);
调用也将持久化依赖实体。
现在,这使得作用于实体的代码与其内部紧密耦合。我管理实体的方式现在与我在实体中使用的注释紧密绑定。由于它引入了额外的耦合,这可以被认为是一种不好的做法吗?