【发布时间】:2023-03-25 13:55:01
【问题描述】:
从数据库中删除父对象时,我想删除所有附加的子对象。但它不起作用:
@Entity
public class ParentEntity {
@Id
private Long id;
//must remain unidirectional
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
private MyEntity my;
}
@Entity
public class MyEntity {
private String text;
}
public interface ParentEntityRepository extends CrudRepository<ParentEntity, Long> {}
当我执行时:
@Autowired
private ParentEntityRepository dao;
@Transactional
public void removeId(long id) {
dao.delete(id);
}
结果:
MyEntity 行仍然存在于数据库中!为什么?
【问题讨论】:
-
dao.delete(id);长什么样子? -
这是一个春天
CrudRepository,在上面添加。 -
父实体行本身是否已从数据库中删除?
-
是的,父行已完全删除。
-
您使用的是 EclipseLink 还是 Hibernate?