У меня есть две сущности: «Назначение» (родительский) и «Драйвер» (дочерний) с сопоставлением «один к одному» с общим первичным ключом. Я пытаюсь удалить экземпляр объекта "Destination" без каскадирования его с драйвером.
Это объект Destination:
@Entity
@Table(name="destination")
public class Destination {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
private int id;
@Column(name="name")
private String name;
/*
* Mapping
*/
//Using a Shared Primary Key
@OneToOne(mappedBy = "destination")
private Driver driver;
.....
, а это объект Driver:
@Entity
@Table(name="driver")
public class Driver {
/*
* we'll mark the PK column (id) of Driver table as the FK to the Destination table:
*/
@Id
@Column(name="id")
private int id;
@Column(name="firstName")
private String firstName;
@Column(name="lastName")
private String lastName;
@Column(name="age")
private int age;
/*
* Mapping
*/
/*
* With @MapsId the (id) property serves as both PK and FK.
* You’ll notice that the @Id column no longer uses a @GeneratedValue annotation since the identifier
* is populated with the identifier of the Destination association.
*/
@OneToOne
@JoinColumn(name="id")
@MapsId
private Destination destination;
....
Поскольку это общий первичный ключ, я не могу найти способ сделать это. Есть предложения?