我的子表没有删除

时间:2014-01-21 07:29:39

标签: java hibernate

这是我的实体档案。在这里我使用双向映射我的要求是,如果我删除父我要删除父和子,如果我删除子我想删除只有子父而不是父。但是这里没有用,任何人都可以告诉我如何做到这一点。

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.treamis.entity;

import java.io.Serializable;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

/**
 *
 * @author admin
 */
@Entity
@Table(name = "LibraryBookListTable")
public class LibraryBookListEntity implements Serializable {

    @Id
    @GeneratedValue
    @Column(name = "BookListId")
    private int booklistid;
    @Column(name = "ISBN", nullable = false)
    private String isbn;
    @Column(name = "edition", nullable = false)
    private String edition;
    @Column(name = "publisher", nullable = false)
    private String publisher;
    @Column(name = "place", nullable = false)
    private String place;
    @Column(name = "page", nullable = false)
    private String page;
    @Column(name = "source", nullable = false)
    private String source;
    @Column(name = "billno", nullable = false)
    private String billno;
    @Column(name = "callno", nullable = false)
    private String callno;
    @Column(name = "BookTitle", nullable = false)
    private String booktitle;
    @Column(name = "BookAuthor", nullable = false)
    private String author;
    @Column(name = "BookPrice", nullable = false)
    private float price;
    @Column(name = "RackNumber", nullable = false)
    private String rack;
    @Column(name = "PublishedYear", nullable = false)
    private String publishedyear;
    @Column(name = "NoofCopies", nullable = false)
    private int tcopies;
    @Column(name = "DateAdded", nullable = false)
    private java.sql.Date dateAdded;
    @Column(name = "billdate", nullable = false)
    private java.sql.Date billdate;
    @ManyToOne(fetch = FetchType.LAZY, targetEntity = CategoryEntity.class)
    @JoinColumn(name = "category_Id", referencedColumnName = "category_Id", nullable = true)
    private CategoryEntity categoryid;
    @OneToOne
    private UserEntity addedBy;
    @OneToOne
    private UserEntity modifiedBy;
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "parent")
    @JoinColumn(name = "BookListId", referencedColumnName = "BookListId")
    @Cascade({CascadeType.SAVE_UPDATE})
    private Set< LibraryBarCodeEntity> chield;

    public Set<LibraryBarCodeEntity> getChield() {
        return chield;
    }

    public void setChield(Set<LibraryBarCodeEntity> chield) {
        this.chield = chield;
    }
    //@Column(name = "AddedDate", nullable = false)
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private java.util.Date addedate;
    // @Column(name = "ModifiedDate", nullable = false)
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private java.util.Date modifiedDate;

    public int getBooklistid() {
        return booklistid;
    }

    public void setBooklistid(int booklistid) {
        this.booklistid = booklistid;
    }

    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public String getBooktitle() {
        return booktitle;
    }

    public void setBooktitle(String booktitle) {
        this.booktitle = booktitle;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public float getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }

    public String getRack() {
        return rack;
    }

    public void setRack(String rack) {
        this.rack = rack;
    }

    public int getTcopies() {
        return tcopies;
    }

    public void setTcopies(int tcopies) {
        this.tcopies = tcopies;
    }

    public java.sql.Date getDateAdded() {
        return dateAdded;
    }

    public void setDateAdded(java.sql.Date dateAdded) {
        this.dateAdded = dateAdded;
    }

    public CategoryEntity getCategoryid() {
        return categoryid;
    }

    public void setCategoryid(CategoryEntity categoryid) {
        this.categoryid = categoryid;
    }

    public UserEntity getAddedBy() {
        return addedBy;
    }

    public void setAddedBy(UserEntity addedBy) {
        this.addedBy = addedBy;
    }

    public UserEntity getModifiedBy() {
        return modifiedBy;
    }

    public void setModifiedBy(UserEntity modifiedBy) {
        this.modifiedBy = modifiedBy;
    }

    public java.util.Date getAddedate() {
        return addedate;
    }

    public void setAddedate(java.util.Date addedate) {
        this.addedate = addedate;
    }

    public java.util.Date getModifiedDate() {
        return modifiedDate;
    }

    public void setModifiedDate(java.util.Date modifiedDate) {
        this.modifiedDate = modifiedDate;
    }

//    public String getAccessionnumber() {
//        return accessionnumber;
//    }
//
//    public void setAccessionnumber(String accessionnumber) {
//        this.accessionnumber = accessionnumber;
//    }
    public String getEdition() {
        return edition;
    }

    public void setEdition(String edition) {
        this.edition = edition;
    }

    public String getPublisher() {
        return publisher;
    }

    public void setPublisher(String publisher) {
        this.publisher = publisher;
    }

    public String getPlace() {
        return place;
    }

    public void setPlace(String place) {
        this.place = place;
    }

    public String getPage() {
        return page;
    }

    public void setPage(String page) {
        this.page = page;
    }

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getBillno() {
        return billno;
    }

    public void setBillno(String billno) {
        this.billno = billno;
    }

    public String getCallno() {
        return callno;
    }

    public void setCallno(String callno) {
        this.callno = callno;
    }

    public java.sql.Date getBilldate() {
        return billdate;
    }

    public void setBilldate(java.sql.Date billdate) {
        this.billdate = billdate;
    }

    public String getPublishedyear() {
        return publishedyear;
    }

    public void setPublishedyear(String publishedyear) {
        this.publishedyear = publishedyear;
    }
//    public Set< LibraryBarCodeEntity> getChield() {
//        return chield;
//    }
//
//    public void setChield(Set< LibraryBarCodeEntity> chield) {
//        this.chield = chield;
//    }
}

1 个答案:

答案 0 :(得分:0)

更改您的表,以便将其设置为DELETE CASCADE。

在休眠中,这就像

<set name="stockDailyRecords" cascade="delete" table="stock_daily_record" ...>
      <key>
            <column name="STOCK_ID" not-null="true" />
      </key>
      <one-to-many class="com.mkyong.common.StockDailyRecord" />
</set>

请参阅此link