Рассмотрим следующую структуру базы данных
Мне нужно реализовать однонаправленное отображение один в один , подобное этому (структура упрощена):
@Entity
@Table(name = "entity")
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@OneToOne
@JoinColumn(name = "customer_info", nullable = false)
private CustomerInfo customerInfo;
@OneToOne
@JoinColumn(name = "customer_credentials", nullable = false)
private CustomerCredentials customerCredentials;
// getter, setters etc
}
@Entity
@Table(name = "customer_info")
public class CustomerInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
// getter, setters etc
}
@Entity
@Table(name = "customer_credentials")
public class CustomerCredentials {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
// getter, setters etc
}
Но каким-то образом hibernate не в состоянии различить, что эти объединения из разных таблиц, и выдает такую ошибку:
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: com.example.Customer column: customer_id (should be mapped with insert="false" update="false")
Важное замечание : я не хочу использовать @OneToOne(mappedBy = "customer")
потому что мне нужна функция каскадного сохранения