The order of deletes for OpenJPA 2.3.x are happening in the wrong order and I can't figure out why.
Given these JPA mappings // grandparent @Entity @Table(name = "three_phase_motor_input") public class ThreePhaseMotorInput implements IThreePhaseMotorInput, Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Version private Integer version; @OneToOne(orphanRemoval = true, cascade = CascadeType.ALL, optional = true, targetEntity = UnapprovedThreePhaseMotor.class) @JoinColumn(name = "unapproved_id") private IThreePhaseMotor unapprovedMotor; // parent @Entity @Table(name = "unapproved_three_phase_motor") public class UnapprovedThreePhaseMotor extends ThreePhaseMotor { @OneToMany(orphanRemoval = true, cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = UnapprovedThreePhaseWire.class) @JoinColumn(name = "motor_id", referencedColumnName = "id", nullable = false) @OrderColumn(name = "idx") private List<IThreePhaseWire> wires; // child - Abstract @MappedSuperclass @Access(AccessType.FIELD) public abstract class ThreePhaseWire implements IThreePhaseWire, Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; // child concrete @Entity @Table(name = "unapproved_three_phase_wire") public class UnapprovedThreePhaseWire extends ThreePhaseWire { Order of SQL statements in log file when setting unapprovedMotor in grandparent to null 572353115 UPDATE three_phase_motor_input SET status = ?, version = ?, approved_id = ?, unapproved_id = ? WHERE id = ? AND version = ? [params=(int) 1, (int) 8, (null) null, (null) null, (long) 896, (int) 7] 1683522521 DELETE FROM unapproved_three_phase_motor WHERE id = ? AND version = ? [params=(long) 209938, (int) 1] 446470297 DELETE FROM unapproved_three_phase_wire WHERE id = ? [params=(long) 1394] This causes a foreign key constraint error since the child still exists when the parent delete statement is executed. -- View this message in context: http://openjpa.208410.n2.nabble.com/Wrong-order-for-delete-of-child-when-deleting-parent-tp7589053.html Sent from the OpenJPA Users mailing list archive at Nabble.com.