У меня есть две сущности со следующими аннотациями JPA:
@Entity
@Table(name = "Owner")
public class Owner implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private long id;
@OneToOne(fetch=FetchType.EAGER , cascade=CascadeType.ALL)
@JoinColumn(name="Data_id")
private Data Data;
}
@Entity
@Table(name = "Data")
public class Data implements Serializable
{
@Id
private long id;
}
Владелец и данные имеют однозначное сопоставление, владельцем является владелец.
Проблема возникает, когда я выполняю: owner.setData (null); ownerDao.update (владелец) ;
Data_id таблицы «Владелец» становится нулевым, это правильно.
Но строка «Данные» не удаляется автоматически.
Мне нужно написать еще один DataDao и другой сервисный слой, чтобы обернуть два действия (ownerDao.update (owner); dataDao.delete (data);)
Возможно ли сделать строку данных автоматически удаленной, если владелец-владелец установит для нее значение null?