Hello,
I try to delete some children (not all) of an entity.
Cascade work in add, update, and if I remove parent.
But if in parent, I've 3 children and I want to remove one of them, I don't
known how can I do.
I've tried to remove one child of Set and merge parent: Record is not
deleted.
I've tried to set null the property TRequete of one child: I've got
exception : null is not allow.
Thanks for your help.
Laurent
Object parent:
@Entity
@Table(name="t_requete"
)
public class TRequete implements java.io.Serializable {
private Integer id;
private String reqNom;
private Set<TRequeteParam> listParam = new HashSet<TRequeteParam>(0);
public TRequete() {
}
@SequenceGenerator(name="seq_TRequete",
sequenceName="t_requete_id_requete_seq")@Id
@GeneratedValue(strategy=SEQUENCE, generator="seq_TRequete")
@Column(name="id_requete", unique=true, nullable=false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name="req_nom")
public String getReqNom() {
return this.reqNom;
}
public void setReqNom(String reqNom) {
this.reqNom = reqNom;
}
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY,
mappedBy="requete")
public Set<TRequeteParam> getListParam() {
return this.listParam;
}
public void setListParam(Set<TRequeteParam> listParam) {
this.listParam = listParam;
}
}
Child object:
@Entity
@Table(name="t_requete_param"
)
public class TRequeteParam implements java.io.Serializable {
private Integer id;
private TRequete requete;
private String reqparNom;
public TRequeteParam() {
}
@SequenceGenerator(name="seq_TRequeteParam",
sequenceName="t_requete_param_id_requete_param_seq")@Id
@GeneratedValue(strategy=SEQUENCE, generator="seq_TRequeteParam")
@Column(name="id_requete_param", unique=true, nullable=false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="fk_requete", nullable=false)
public TRequete getRequete() {
return this.requete;
}
public void setRequete(TRequete requete) {
this.requete = requete;
}
@Column(name="reqpar_nom")
public String getReqparNom() {
return this.reqparNom;
}
public void setReqparNom(String reqparNom) {
this.reqparNom = reqparNom;
}
}