public class Legendtype implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 100)
@Column(nullable = false, length = 100)
private String legendname;
@Size(max = 500)
@Column(name = "LEGEND_DESC", length = 500)
private String legendDesc;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 50)
@Column(nullable = false, length = 50)
private String legendfor;
@OneToMany(cascade = CascadeType.PERSIST, mappedBy = "legendnameFk", fetch = FetchType.LAZY)
private List<Legend> legendList;
}
public class Legend implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer sn;
@Column(name = "LEGEND_SN")
private Integer legendSn;
@Basic(optional = false)
@NotNull
@Column(nullable = false)
private double lowerrange;
@Basic(optional = false)
@NotNull
@Column(nullable = false)
private double upperrange;
@Size(max = 500)
@Column(name = "LEGEND_DESC", length = 500)
private String legendDesc;
@Size(max = 45)
@Column(length = 45)
private String color;
@JoinColumn(name = "LEGENDNAME_FK", referencedColumnName = "LEGENDNAME", nullable = false)
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private Legendtype legendnameFk;
}
when I call
public void mergeLegendType(Legendtype lt) {
em.merge(lt);
}
It only updates legendtype but not legend. How to cascade update and delete? I have cascade.all defined.