Hibernate 级联保存失败,Hibernate defect
使用annotation方式标注Payment和PaymentEntry. ID都是用自己设定策略assigned。
@Entity@Table(name = "LO_CONF_PAYMENT")public class PaymentBillDO implements Serializable{@Transientprivate static final long serialVersionUID = 206001219164196538L;@Id@Column(name = "ID", length = 50)@GeneratedValue(generator = "c-assigned")@GenericGenerator(name = "c-assigned", strategy = "assigned")private String ID; @OneToMany(mappedBy ="parent",targetEntity = PaymentBillEntryDO.class, fetch = FetchType.LAZY)@Cascade({ CascadeType.ALL})private List<PaymentBillEntryDO> Entries;}@Entity@Table(name = "LO_CONF_PAYMENTENTRY")public class PaymentBillEntryDO implements Serializable {private static final long serialVersionUID = 6913338048891980882L;@Id@Column(name = "ID", length = 50)@GeneratedValue(generator = "c-assigned")@GenericGenerator(name = "c-assigned", strategy = "assigned")private Long ID;@ManyToOne( targetEntity = PaymentBillDO.class, fetch = FetchType.EAGER)@JoinColumn(name = "PARENT_ID", nullable = false)@Cascade({ CascadeType.REFRESH })private PaymentBillDO parent;@Entity@Table(name = "LO_CONF_PAYMENTENTRY")public class PaymentBillEntryDO implements Serializable {private static final long serialVersionUID = 6913338048891980882L;@Id@Column(name = "ID", length = 50)@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "paymentbillEntry_seq") @SequenceGenerator(name = "paymentbillEntry_seq", sequenceName = "SEQ_LO_CONF_PAYMENT_ENTRY")private Long ID;@ManyToOne( targetEntity = ElementEventRelationshipDO.class, fetch = FetchType.EAGER)@JoinColumn(name = "PARENT_ID", nullable = false)@Cascade({ CascadeType.REFRESH })private PaymentBillDO parent;