Решение с общим составным ключом:
Без "id" в @MapsId платформа генерирует следующий запрос:
"вставить в значения EMPLOYEE_DETAILS (AEN_DATUM, SACHB_KZ, DETAILS, employee_id_employee, employee_MANDANT)(?,?,?,?,?) "
После добавления" id "в @MapsId запрос выглядит следующим образом:
" вставить в EMPLOYEE_DETAILS (AEN_DATUM, SACHB_KZ, DETAILS, id_employee, MANDANT) значения (?,?,?,?,?) "
@Entity(name = "Employee")
@Table(name = "EMPLOYEE")
public class Employee extends Base {
@EmbeddedId
private EmployeeId id;
@Column(name = "FIRST_NAME", length = 100, nullable = false)
private String firstName;
@Column(name = "SUR_NAME", length = 100, nullable = false)
private String surName;
...
}
@Embeddable
public class EmployeeId extends BaseId implements Serializable {
@Column(name = "id_employee", precision = 9)
private Long employeeId;
...
}
@Entity(name = "EmployeeDetails")
@Table(name = "EMPLOYEE_DETAILS")
public class EmployeeDetails extends Base {
@EmbeddedId
private EmployeeId id;
@Column(name = "DETAILS", nullable = false)
private String details;
@MapsId("id")
@OneToOne
private Employee employee;
...
}
Это не та же реализация, что и выше, но проблема была та же.Запрос был сгенерирован с CONTACT_MANDANT вместо MANDANT.
peace