【发布时间】:2017-02-25 20:54:07
【问题描述】:
父表:
@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 始终为空。 有人可以帮忙吗? 我正在使用带有 spring-boot 和 JPA 的内存 hsqldb。
【问题讨论】:
-
您需要删除 insertable=false, updatable=false 并确保设置关系的双方,即 child 中的 parentTable = 被持久化的 parent。
标签: jpa spring-boot hsqldb