Bom dia!
Estou com dificuldade em persistir dados em uma tabela com relacionamento @ManyToMany, quando uso @ManyToOne funciona tudo perfeito, porém com muitos para muitos não estou conseguindo. Possuo 3 tabelas no banco, cnai, unidades e unidades_cnai. Segue o código:
Classe com relacionamento @ManytoMany
@Entity
@Table(name = "unidades")
public class Unidade {
@Id
@GeneratedValue
private Integer id;
//Atributos
@ManyToMany
@JoinTable(name = "unidades_cnai")
private List<Cnai> cnai;
//Geters e Setters
public List<Cnai> getCnai() {
EntityManager em = new JPAUtil().getEntityManager();
CnaiDAO dao = new CnaiDAO(em);
return dao.getLista();
}
public void setCnai(List<Cnai> cnai) {
this.cnai = cnai;
}
}
Classe cnai
@Entity
@Table(name = "cnai")
public class Cnai {
@Id
@GeneratedValue
private Integer id;
private String codigo;
private String descricao;
private String GR;
//Geters e Setters
}
View de cadastro de unidades, local onde devo selecionar o Cnais a serem cadastrados
<td>
<select size="4" multiple="multiple" name="cnai">
<c:forEach var="cnai" items="${dao.lista}">
<option value="${cnai.id}">${cnai.codigo}</option>
</c:forEach>
</select>
</td>
Quando clico o botão de gravar, grava uma nova unidade perfeitamente com tudo que foi passado pela view exeto o cnai, que não é gravado em lugar algum. Alguém pode ajudar?
