Родитель Таблица:JPA автоматически сгенерированный ключ не отражается на внешнем ключе дочерней таблицы
@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;
}
Мое требование, когда contact_id генерируется в Parent_table_t, он должен быть скопирован в contact_id child_table_t при сохранении.
Когда я вызываю saveAndFlush/save на Parent Table Entity, это: Создание автоматического приращения для Parent-> contact_id. Но Child_table_t -> contact_id всегда равно null. Может кто-то помочь в этом. Я использую in-memorty hsqldb с пружинной загрузкой и JPA.
Вам необходимо удалить insertable = false, updatable = false ** и ** гарантировать, что обе стороны отношения установлены, то есть parentTable в child = родительский объект сохраняется. –