Bom dia galera, sou novo aqui no forum e estou com uma dúvida no JPA.
Possuo 3 Entidades (LOJA, PRODUTO e TAXA) com suas respectivas tabelas. Existe uma quarta tabela onde eu faço a “ligação” entre elas. Se eu tento mapear 2 Entidades somente, funciona perfeitamente como no exemplo a seguir:
@Entity
@Table(name=“tb_cdc_loja”)
public class Loja {
@Id
@Column(name="cdc_loj_codigo")
private int codigoLoja;
@ManyToMany(mappedBy="lojas",fetch=FetchType.LAZY,cascade=CascadeType.ALL)
private List<Produto> produtos;
}
@Entity
@Table(name=“tb_cdc_produto”)
public class Produto {
@Id
@Column(name=“cdc_prd_codigo”)
private int codigoProduto;
@ManyToMany
@JoinTable(name=“tb_cdc_loja_produto_taxa”,
joinColumns={ @JoinColumn(name=“cdc_prd_codigo”, referencedColumnName=“cdc_prd_codigo”) },
inverseJoinColumns={ @JoinColumn(name=“cdc_prd_codigo”, referencedColumnName=“cdc_prd_codigo”) } )
private List lojas;
}
agora como isto pode ser feito com 3 entidades? Fiz algo desse tipo mas nao deu certo:
@Entity
@Table(name=“tb_cdc_loja”)
public class Loja {
@Id
@Column(name="cdc_loj_codigo")
private int codigoLoja;
@ManyToMany(mappedBy="lojas",fetch=FetchType.LAZY,cascade=CascadeType.ALL)
private List<Produto> produtos;
}
@Entity
@Table(name=“tb_cdc_produto”)
public class Produto {
@Id
@Column(name=“cdc_prd_codigo”)
private int codigoProduto;
@ManyToMany(mappedBy="_produtos",fetch=FetchType.LAZY,cascade=CascadeType.ALL)
private List taxas;
@ManyToMany
@JoinTable(name=“tb_cdc_loja_produto_taxa”,
joinColumns={ @JoinColumn(name=“cdc_prd_codigo”, referencedColumnName=“cdc_prd_codigo”) },
inverseJoinColumns={ @JoinColumn(name=“cdc_prd_codigo”, referencedColumnName=“cdc_prd_codigo”) } )
private List lojas;
}
@Entity
@Table(name=“tb_cdc_taxa”)
public class Taxa {
@Id
@Column(name=“cdc_tx_codigo”)
private int codigoTaxa;
@ManyToMany
@JoinTable(name=“tb_cdc_loja_produto_taxa”,
joinColumns={ @JoinColumn(name=“cdc_lpt_tx_codigo”, referencedColumnName=“cdc_tx_codigo”) },
inverseJoinColumns={ @JoinColumn(name=“cdc_lpt_prd_codigo”, referencedColumnName=“cdc_prd_codigo”) } )
private List _produtos;
}
Se alguem puder me ajudar ficarei grato!!