[英]JPA auto-generated key not reflected in foreign key of child table
父表:
@Table(name="parent_table_t")
public class ParentTable implements Serializable {
@Id
@Column(name="contact_id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer contactId;
---------
---------
@OneToOne (cascade = CascadeType.ALL, mappedBy = "parentTable")
private ChildTable childTable;
}
子表:
@Table(name="child_table_t")
public class ChildTable implements Serializable {
@Id
@Column(name="child_id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer childId;
@Column(name="contact_id")
private Integer contactId;
@JoinColumn(name="contact_id", referencedColumnName = "contact_id", insertable=false, updatable=false)
@OneToOne(cascade = CascadeType.ALL)
private ParentTable parentTable;
}
我的要求是在parent_table_t中生成contact_id時,應該在保存時將其復制到child_table_t的contact_id中。
當我在父表實體上調用saveAndFlush / save時,它是:為Parent-> contact_id生成自動增量。 但是Child_table_t - > contact_id始終為null。 有人可以幫忙嗎。 我正在使用帶有spring-boot和JPA的in-memorty hsqldb。
您使用insertable = false,updatable = false標記了@JoinColumn的關系,可能是因為您也有列的整數映射。 不幸的是,這些設置阻止了JPA使用關系中的值設置它,而是強制使用contactId屬性中的值設置列。
將insertable = false,updatable = false放在@Column上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.