Hibernate映射:获得例外 - 无法删除或更新父行休眠

问题描述 投票:0回答:1

我有两个班

图书和DeliveryRequest现在我想,当图书的对象被删除,则对应于这本书的所有请求被删除。

交付请求类:

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


}

可以做些什么来提供这种级联效应。

hibernate nhibernate-mapping hibernate-mapping
1个回答
0
投票

您正在寻找删除级联。

@org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.DELETE})
© www.soinside.com 2019 - 2024. All rights reserved.