Spring数据jpa @ManyToOne orphanRemoval = true不会删除

时间:2017-03-15 16:12:18

标签: java mysql orm spring-data-jpa

情况:获得书籍和类别。每个类别可以有n本书。想要从类别创建新书,更新或删除书籍。如果category为空,请从db中删除它。目前插入,更新和删除书籍。

问题:如果类别为空,则orphanRemoval = true不会删除。

@Entity
@Table(name = "book")
@Getter
@Setter
public class BookEntity implements DBEntity, Serializable {

    @Id
    private Integer id;
    private String bookname;
    @ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.DETACH, CascadeType.REFRESH})
    @JoinColumn(name = "categoryid", referencedColumnName = "id")
    private CategoryEntity categoryEntity;

    public Integer getId() {
        return this.id;
    }
}

@Entity
@Table(name = "category")
@Getter
@Setter

public class CategoryEntity implements DBEntity, Serializable {
    @Id
    private Integer id;
    private String categoryName;

    @OneToMany(cascade = CascadeType.REMOVE, mappedBy = "categoryEntity", orphanRemoval = true)
    private Set<BookEntity> bookEntitySet = new HashSet<BookEntity>(0);

}

@Transactional
public interface CategoryDAO extends CrudRepository<CategoryEntity, Integer> {
}

@Transactional
public interface BookDAO extends CrudRepository<BookEntity, Integer> {
}

感谢您提供任何帮助

P.S。
试过:
没有帮助:
Spring + JPA @OneToMany with orphanRemoval
看起来很愚蠢 - 从类别中删除书籍(如果2-n外键不起作用):
https://hellokoding.com/jpa-one-to-many-relationship-mapping-example-with-spring-boot-maven-and-mysql/
 没有提到:
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/

0 个答案:

没有答案