I have a provider table:
@Entity(name = "tbl_fornecedor")
public class Fornecedor extends PessoaJuridica implements Serializable, Desativar {
private static final long serialVersionUID = 1L;
@Id
private String cnpj;
/*Relacionamentos*/
@OneToMany(mappedBy = "fornecedor")
private Set<FornecedorProduto> fornecedorProduto = new HashSet<FornecedorProduto>();
/*Gettes and Setters*/
}
A Product table:
@Entity(name = "tbl_produto")
public class Produto implements Serializable, Desativar {
private static final long serialVersionUID = 1L;
@Id
private String codigoOriginal;
@Column(name = "nome", nullable = false, length = 200)
private String nome;
@Column(name = "descricao", nullable = false, length = 200)
private String descricao;
@Column(name = "margem_lucro", nullable = false)
private double margemLucro;
@Column(name = "locacao", nullable = false, length = 200)
private String locacao;
@Column(name = "Ativo")
protected boolean ativo;
/*Relacionamentos*/
@OneToMany(mappedBy = "produto")
private Set<FornecedorProduto> fornecedorProduto = new HashSet<FornecedorProduto>();
/*Getters and Setters*/
}
And the Auxiliary table:
@Entity(name = "tbl_fornecedor_produto")
public class FornecedorProduto implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private long id;
@Column(name = "preco_custo", nullable = false)
private double precoCusto;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "data_registro", nullable = false)
private Date dataRegistro = new
java.sql.Date(System.currentTimeMillis());
@Column(name = "preco_atual", nullable = false)
private boolean precoAtual;
/*Relacionamentos*/
@ManyToOne
@JoinColumn(name = "cnpj_fornecedor", updatable = false)
private Fornecedor fornecedor;
@ManyToOne
@JoinColumn(name = "id_produto", updatable = false)
private Produto produto;
/*Getters and Setters*/
}
I wanted to change the helper table so that the product and vendor Ids were the PKs of this helper class, to remove this Id field. I would like a light on this question, what better procedure to take?