Hibernate映射:获取异常-无法删除或更新父行Hibernate

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;

我有两节课

Book and DeliveryRequest现在我希望,当Book的一个对象被删除时,与该书对应的所有请求也会被删除

交付请求类别:

@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})

你的例子有什么问题?首先,看起来它应该是有效的。