I am familiar with the "textbook" cascaded delete, where the parent record is deleted and then the delete action is "cascaded" to child records (which would otherwise be orphaned).
My question is, how does Hibernate/JPA handle the delete of a child record when the parent record is saved? For example, the classic "invoice header/invoice detail" case:
InvoiceHeader 1234 has three detail lines: InvoiceDetail 1 InvoiceDetail 2 InvoiceDetail 3
These might be contained in a Java object where InvoiceHeader has a List<InvoiceDetail> property. In the database, they would be persisted as two separate tables.
If I delete InvoiceDetail 3 from my InvoiceHeader Java object, and then persist the modified InvoiceHeader object back to the database, does Hibernate "recognize" that it needs to delete that InvoiceDetail record?
|