繁体   English   中英

没有删除带有CascadeType.ALL的@OneToOne?

[英]@OneToOne with CascadeType.ALL not getting deleted?

从数据库删除父对象时,我想删除所有附加的子对象。 但这不起作用:

@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行仍存在于数据库中! 为什么?

你可以试试这个

@OneToOne(cascade = CascadeType.DELETE_ORPHAN)
private MyEntity my;

如果它不起作用,则可以尝试以下操作:

更新集合时休眠删除孤儿

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM