我有2個實體:的PersistenceException試圖級聯堅持子實體
站長:
@Entity
@Table(name = "master")
public class Master implements java.io.Serializable {
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "seq")
private Integer seq;
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "seq", referencedColumnName = "seq")
private SubMaster subMaster;
...................
}
副站長:
@Entity
@Table(name = "sub_master")
public class SubMaster implements java.io.Serializable {
@Id
@Column(name = "seq")
private Integer seq;
private String subName;
...................
}
時,我試圖堅持Master
實體通過設置SubMaster
實體,我越來越追隨excep重複:
javax.persistence.PersistenceException: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned beforeQuery calling save(): SubMaster
而我期待,休眠它會自動堅持子實體,只要父實體持久。
但是,我相信副版ID應該是一樣的碩士學位。但是,如果我使用這個,我得到異常(我認爲是顯而易見的):'java.sql.SQLException:字段'seq'沒有默認值' – gschambial
什麼是具有相同的ID爲兩個? OneToOne將生成一個外鍵引用。如果您也想加入Master ID,則需要指定要加入的第二列,並在您的sub_master類中添加一個id_master屬性。 此外,由於連接,您可以禁用seq元素的空條目(它可能是異常的來源) – alexay68