Boa tarde galera!
Estou precisando de algumas dicas de como fazer o que estou precisando…
Resumindo: tenho no banco as tabelas: “produto”, “tabela”, “tabelaproduto”
Na entidade “produto” vou criar um OneToMany de List, certo?
Só que nessa List, vou carregar somente as tabelas do qual: tabela_produto.pro_cod = produto.pro_cod (isso a mapeação ja vai fazer sozinho), a regra que preciso implementar, é que na tabela “tabela” eu tenho um campo chamado “estado” e outro campo que é chamado “tabpro_id” que no caso é a chave extrangeira de TabelaProduto, e de alguma forma eu preciso passar (para a tabela “tabela”) os estados que é pra carregar (que não podem ser todos)
Ou seja, o código começa assim:
@Id
@Column(name = "pro_cod")
private long pro_cod;
@OneToMany(mappedBy = "pro_cod", fetch= FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
private List<TabelaProduto> tabelasProduto;
A duvida agora é, como vou colocar, para no atributo tabelasProduto, aparecer os resultados da TabelaProduto, sendo que eu só quero os estados SP e RJ que está na tabela “Tabela”…
Mais informações na pratica:
public class Produto implements Serializable {
@Id
@Column(name = "pro_cod")
private long pro_cod;
@Column(name = "pro_desc")
private String pro_desc;
@Column(name = "pro_vol")
private int pro_vol;
@Column(name = "pro_status")
private boolean pro_status;
@OneToMany(mappedBy = "pro_cod", fetch= FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
private List<TabelaProduto> tabelasProduto;
public class TabelaProduto implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long tabpro_id;
@JoinColumn(name="tabpro_id", nullable = false)
@OneToOne(cascade=CascadeType.PERSIST)
private Tabela tab_id;
@JoinColumn(name="pro_cod", nullable = false)
@OneToOne(cascade=CascadeType.PERSIST)
private Produto pro_cod;
public class Tabela implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long tab_id;
@JoinColumn(name="est_id", nullable = true)
@OneToOne(cascade=CascadeType.PERSIST)
private Estado est_id;
@JoinColumn(name="cli_id", nullable = true)
@OneToOne(cascade=CascadeType.PERSIST)
private Cliente cli_id;