我有两个实体,带有以下 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 和 Data 是一一对应的,拥有方是 Owner。当我执行时出现问题:owner.setData(null) ; ownerDao.update(owner) ; “所有者”表的 Data_id 变为 null ,这是正确的。
但“数据”行不会自动删除。我必须编写另一个 DataDao 和另一个服务层来包装这两个操作( ownerDao.update(owner) ; dataDao.delete(data); )
当拥有所有者将其设置为 null 时,是否可以自动删除数据行?