Hibernate映射:获取异常-无法删除或更新父行Hibernate
我有两节课 Book and DeliveryRequest现在我希望,当Book的一个对象被删除时,与该书对应的所有请求也会被删除 交付请求类别:Hibernate映射:获取异常-无法删除或更新父行Hibernate,hibernate,nhibernate-mapping,hibernate-mapping,Hibernate,Nhibernate Mapping,Hibernate Mapping,我有两节课 Book and DeliveryRequest现在我希望,当Book的一个对象被删除时,与该书对应的所有请求也会被删除 交付请求类别: @Entity @Table(name="Delivery_Request") public class DeliveryRequest{ private int deliveryRequestId; private Book book; private User user;
@Entity
@Table(name="Delivery_Request")
public class DeliveryRequest{
private int deliveryRequestId;
private Book book;
private User user;
@Id
@GeneratedValue
@Column(name="Delivery_Request_Id")
public int getDeliveryRequestId() {
return deliveryRequestId;
}
public void setDeliveryRequestId(int deliveryRequestId) {
this.deliveryRequestId = deliveryRequestId;
}
@ManyToOne
@JoinColumn(name="Book_Id")
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
@ManyToOne
@JoinColumn(name="User_Id")
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
图书班
@Entity
public class Book {
private int bookId;
private Set<DeliveryRequest> requests = new HashSet<DeliveryRequest>(0);
@Id
@GeneratedValue
@Column(name="Book_Id")
public int getBookId() {
return bookId;
}
public void setBookId(int bookId) {
this.bookId = bookId;
}
@OneToMany(fetch=FetchType.EAGER , cascade=CascadeType.ALL , mappedBy="book")
public Set<DeliveryRequest> getRequests() {
return requests;
}
public void setRequests(Set<DeliveryRequest> requests) {
this.requests = requests;
}
}
@实体
公共课堂用书{
私人书号;
私有集请求=新哈希集(0);
@身份证
@生成值
@列(name=“Book\u Id”)
public int getBookId(){
返回bookId;
}
公共作废退书簿(int bookId){
this.bookId=bookId;
}
@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL,mappedBy=“book”)
公共集合getRequests(){
返回请求;
}
公共无效设置请求(设置请求){
this.requests=请求;
}
}
如何提供这种级联效果。您正在寻找删除级联
@org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.DELETE})
你的例子有什么问题?首先,看起来它应该是有效的。