Я использую Spring Boot 2.1.4 с данными Spring 2.1.6.RELEASE и Hibernate 5.3.9.Final.
У меня есть две сущности:
@Entity
@Table(name = "comm_profile")
@NamedQuery(name = "CommProfile.findAll", query = "SELECT c FROM CommProfile c")
public class CommProfile implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private String customerId;
@OneToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "customer_id", foreignKey = @ForeignKey(name = "COMM_PROFILE_MAIN_PROFILE_FK"))
@MapsId
private MainProfile mainprofile;
....
}
и
@Entity
public class MainProfile implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "customer_id")
private String customerId;
@OneToOne(mappedBy = "mainprofile", cascade = CascadeType.ALL, fetch = FetchType.LAZY, optional = false)
private CommProfile commProfile;
protected MainProfile() {
}
public MainProfile(final String customerId, final CommProfile commProfile) {
this();
this.customerId = customerId;
this.commProfile = commProfile;
}
....
Я пытаюсь сохранить следующий код:
private CommProfile createNewProfile(final String customerId, Lang lang) {
CommProfile commProfile = new CommProfile(lang);
MainProfile mainProfile = new MainProfile(customerId, commProfile);
MainProfile mainProfile2 = mainProfileService.save(mainProfile);
return mainProfile2.getCommProfile();
}
Для этогоЯ попытался присвоить идентификатор из нулевого свойства «один к одному» [... CommProfile.mainprofile]
Я делал это, используя онлайн-документацию и примеры, но не могу сделать этоРабота.