How to persist with EntityHome in relation many to many
baga Jul 5, 2010 11:36 AMHello,
I have a many to many relationship between Dizionario and Categoria. I'm using EntityHome for CRUD operation and i want to persist data, how can i do it? Anybody can help me?
Here are my Entity:
@Entity
@Table(name = "Dizionario")
public class Dizionario implements java.io.Serializable {
private List<Categoria> categorie;
private Long id;
private String frase;
private boolean ricercatotale = false;
public Dizionario() {
}
public Dizionario(boolean ricercatotale) {
this.ricercatotale = ricercatotale;
}
public Dizionario(String frase, boolean ricercatotale) {
this.frase = frase;
this.ricercatotale = ricercatotale;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "dizionario_id", unique = true, nullable = false)
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name = "frase")
public String getFrase() {
return this.frase;
}
public void setFrase(String frase) {
this.frase = frase;
}
@Column(name = "ricercatotale", nullable = false)
public boolean isRicercatotale() {
return this.ricercatotale;
}
public void setRicercatotale(boolean ricercatotale) {
this.ricercatotale = ricercatotale;
}
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE },
mappedBy = "dizionari",targetEntity = Categoria.class)
public List<Categoria> getCategorie() {
return categorie;
}
public void setCategorie(List<Categoria> categorie) {
this.categorie = categorie;
}
}
CATEGORIA
@Entity
@Table(name = "Categoria")
public class Categoria implements java.io.Serializable {
private Long id;
private String nome;
private Set<Dizionario> dizionari;
public Categoria() {
}
public Categoria(String nome) {
this.nome = nome;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "catagoria_id", unique = true, nullable = false)
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name = "nome", length = 20)
@Length(max = 20)
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@ManyToMany(
targetEntity=Dizionario.class// ,
// cascade={CascadeType.PERSIST, CascadeType.MERGE}
)
@JoinTable(
name="Categoria_Dizionario",
joinColumns=@JoinColumn(name="categoria_id"),
inverseJoinColumns=@JoinColumn(name="dizionario_id"))
public Set<Dizionario> getDizionari() {
return dizionari;
}
public void setDizionari(Set<Dizionario> dizionari) {
this.dizionari = dizionari;
}
// metodo equals: una categoria e' uguale all'altra se il nome coincide
public boolean equals(Object obj) {
return ((Categoria)obj).nome.equals(nome);
}
}