Bom dia amigos, estou com um problema... já procurei aqui no fórum, achei vários posts mas nenhum sanou direito minha dúvida. Estou fazendo um projeto usando JSF e Hibernate, tenho uma duas tabelas no banco, que representam equipamentos e função, que gera um relacionamento muitos pra muitos. Um equipamento pode ter várias funções e uma função pode pertencer a vários equipamentos... a minha dúvida é como usar isso no hibernate, já tentei usar o mapeamento ManayToMany mas no fim das contas me enrolo. Tipo, na minha página eu tenho uma tabela que lista os dados do equipamento juntamente com a descrição da função, ou seja tem um join aí. A minha dúvida era como eu fazer pra fazer esse mapeamento e essa consulta pra retornar para a página.
Classe equipamentopublic class Equipamento implements Serializable {
private Integer id;
private String nome;
private String marca;
private List<EquipamentoFuncao> funcoes;
@Id
@Column(name = "idequipamento")
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name = "nome")
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Column(name = "marca")
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public List<EquipamentoFuncao> getFuncoes() {
return funcoes;
}
public void setFuncoes(List<EquipamentoFuncao> funcoes) {
this.funcoes = funcoes;
}
Classe Função
public class EquipamentoFuncao implements Serializable {
public EquipamentoFuncao() {
}
private String especificacao;
private Integer id;
private List<Equipamento> equipamento;
public EquipamentoFuncao(String especificacao) {
this.especificacao = especificacao;
}
@Override
public String toString() {
return this.getEspecificacao();
}
@Column(name = "especificacao")
public String getEspecificacao() {
return especificacao;
}
public void setEspecificacao(String especificacao) {
this.especificacao = especificacao;
}
@Id
@Column(name = "idfuncao")
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public List<Equipamento> getEquipamento() {
return equipamento;
}
public void setEquipamento(List<Equipamento> equipamento) {
this.equipamento = equipamento;
}
No caso como eu mapearia aí esse relacionamento, eu deveria também mapear a tabela equipamento_has_funcao que eu tenho no banco? E no caso do retorno como eu faria pra retornar na página, sei que o método retornaria um List que eu converteria em DataModel para poder lançar na tabela, mas aí os campos lá são: cod do equipamento, nome do equipamento, marca do equipamento e funcão... sendo que essa função seria a especificação da tabela funcao... como colocar pra listar isso sendo que no list que retornar terão valores de equipamento e funcao... to meio confuso quanto a isso... Agradeço muito se puderem me ajudar!! Abração!!