我遇到了以下问题。 当我尝试删除我的实体时,它会自动尝试删除外键对象。
这是我的实体:
@Entity
public class ScmoKomponente implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Size(min = 1, max = 50, message = "{standard}")
private String name;
@Temporal(javax.persistence.TemporalType.DATE)
private Date datum;
@ManyToOne(cascade = CascadeType.ALL)
private ScmoProjekt projekt;
@ManyToOne(cascade = CascadeType.ALL)
private SupplierUser lieferant;
public SupplierUser getLieferant() {
return lieferant;
}
public void setLieferant(SupplierUser lieferant) {
this.lieferant = lieferant;
}
public ScmoProjekt getProjekt() {
return projekt;
}
public void setProjekt(ScmoProjekt projekt) {
this.projekt = projekt;
}
public Date getDatum() {
return datum;
}
public void setDatum(Date datum) {
this.datum = datum;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof ScmoKomponente)) {
return false;
}
ScmoKomponente other = (ScmoKomponente) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "scmo.model.project.ScmoKomponente[ id=" + id + " ]";
}
}
删除功能:
public void deleteScmoKomponente(ScmoKomponente ScmoKomponente) {
em.remove(em.merge(ScmoKomponente));
}
电话:
public String deleteScmoKompo() {
ss.deleteScmoKomponente(selectedKompo);
selectedKompo = null;
return scmoEditKompo();
}
当我现在尝试删除scmoKomponent时,它会自动删除数据库中的ScmoProjekt和SupplierUser对象。
答案 0 :(得分:0)
如果我正确地知道你是否设置了CascadeType.ALL
hibernate,那么当你更改父实体时,jpa将使用更新,保存,删除等子元素进行所有操作。
因此,如果您想修复程序,只需从@Many-to-One
注释中删除级联attr。
您可以找到有关级联类型here
的一些信息