Olá pessoal tenho um relacionamento manyToMany mas ele, quando vai salvar, só persiste os atributos que são anotados com o @Column normal, o atributo que esta anotado com o manyToMany não é salvo:
Segue o codigo das 2 classes:
Pedidos:
private List<Pedido> jpaPedidos = new ArrayList<Pedido>();
@SuppressWarnings("unused")
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(joinColumns = @JoinColumn(name = "PRO_IDENTIFIER"), inverseJoinColumns = @JoinColumn(name = "PED_IDENTIFIER"), uniqueConstraints = @UniqueConstraint(columnNames = {
"PRO_IDENTIFIER", "PED_IDENTIFIER" }))
private List<Pedido> getJpaPedidos() {
return jpaPedidos;
}
@SuppressWarnings("unused")
private void setJpaPedidos(List<Pedido> jpaPedidos) {
this.jpaPedidos = jpaPedidos;
}
@Transient
public List<Pedido> getPedidos() {
return Collections.unmodifiableList(jpaPedidos);
}
public void clearPedidos() {
jpaPedidos.clear();
}
public void addPedido(Pedido pedido) {
for (Pedido jpaPedido : jpaPedidos) {
if (jpaPedido.getIdentifier() == pedido.getIdentifier()) {
throw new BusinessException("Pedido already assiciated to pedido "
+ pedido.getNumber());
}
}
jpaPedidos.add(pedido);
}
Produtos:
private List<Product> products = new ArrayList<Product>();
@ManyToMany(mappedBy = "jpaPedidos")
public List<Product> getProducts() {
return products;
}
public void setProducts(List<Product> products) {
this.products = products;
}