7
OpenJPA 2.3.x için silme sırası yanlış sırada gerçekleşiyor ve nedenini anlayamıyorum.OpenJPA Ebeveyn silme işlemi sırasında çocuğun silinmesi için yanlış ayar
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]
çocuk hala zaman var çünkü bu bir yabancı anahtar kısıtlaması hataya neden null günlük dosyasında SQL ifadelerinin büyükbaba içinde unapprovedMotor ayar
// 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
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@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 {
al bu JPA eşleştirmeleri
VerilenEbeveyn silme deyimi yürütülür.