这是我的实体档案。在这里我使用双向映射我的要求是,如果我删除父我要删除父和子,如果我删除子我想删除只有子父而不是父。但是这里没有用,任何人都可以告诉我如何做到这一点。
/*
* 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;
// }
}
答案 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