情况:获得书籍和类别。每个类别可以有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/