1
JPA提供了可用於自動持久化/更新/刪除特定實體依賴的其他實體的級聯。假設我有三個實體:Job,BankAccount和Person(與前兩個實體具有OneToMany關係)。在沒有級聯的事件,我會寫:JPA級聯創建緊密聯接
person.addJob(job);
person.addBankAccount(bankAccount);
em.persist(job);
em.persist(bankAccount);
em.persist(person);
級聯事件(與CascadeType.PERSIST對實例的類型),使我能夠省略前兩個堅持()的調用,並確保單個em.persist(person);
來電會也堅持依賴實體。
現在,這使得代碼作用於與其內部緊密耦合的實體。我管理實體的方式現在與我在實體中使用的註釋密切相關。由於它引入了額外的耦合,這可以被認爲是不好的做法嗎?
應該有一個既定的政策,以利用級聯或不在整個代碼?僅在某些實體中使用級聯導致難以維護的代碼IMO。我對嗎? –
我會這樣想,真的沒有任何反對在需要它的地方使用它的論點。不要只是盲目地添加它,想想你將如何與這些對象進行交互以及你的需求是什麼。 – darrengorman