Hello,
I'm testing JPA with Hibernate, and can't annotate classes to produce foreign keys with delete cascade in SQL Server, I think it is possible, like is possible with hibernate core. Which could be the problem?
With this code I get a foreign key but delete cascade is not constrained
at database level.
Parent Class: PAIS
Child Class: PROVINCIA
Entity
@org.hibernate.annotations.Entity (dynamicInsert = true, dynamicUpdate = true)
@Table(name = "PAISES")
public class Pais implements Serializable{
@Id @GeneratedValue(generator = "hibernate-uuid")
@Column(name = "PAIS_ID")
private String id;
@Basic(optional = false)
@Column(name = "DESCRIPCION" , nullable = false)
private String descripcion;
@OneToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE , CascadeType.REMOVE},
mappedBy = "pais")
@org.hibernate.annotations.Cascade(
value = org.hibernate.annotations.CascadeType.DELETE_ORPHAN
)
private Set<Provincia> provincias = new HashSet<Provincia>();
public void setProvincias(Set<Provincia> provincias) {
this.provincias = provincias;
}
public Set<Provincia> getProvincias() {
return provincias;
}
public void addProvincia(Provincia provincia) {
provincia.setPais(this);
provincias.add(provincia);
}
public Pais() {}
.......................
@Entity
@org.hibernate.annotations.Entity (dynamicInsert = true, dynamicUpdate = true)
@Table(name = "PROVINCIAS")
@org.hibernate.annotations.Table(appliesTo="PROVINCIAS",
indexes = { @Index(name="IDX_PROVINCIAS_1", columnNames = { "PROVINCIA_ID", "DESCRIPCION" } ) } )
public class Provincia implements Serializable{
@Id @GeneratedValue(generator = "hibernate-uuid")
@Column(name = "PROVINCIA_ID", length = 32)
private String id;
@Basic(optional = false)
@Column(name = "DESCRIPCION" , nullable = false)
@org.hibernate.annotations.Index(name = "IDX_DESCRIPCION")
private String descripcion;
@ManyToOne
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name = "PAIS_ID", nullable = false)
@org.hibernate.annotations.ForeignKey(name = "FK_PAIS_ID")
private Pais pais;
public Provincia() {}
.......................
Thank's in advance
|