Tenho uma classe Review.java e outra Usuario.java. Tenho uma tabela review que nela contém o id do usuario que vez o review. Como faço para pegar todos os nomes dos usuarios que fizeram os reviews. Ex: select usu_nome from usuario,review where usuario.usu_id = review.usu_id
Com Hibernate não faz mapeamento de ids desta maneira. Você mapeia o relacionamento entre os objetos. Por exemplo:
Usuario.java@EntitypublicclassUsuario{@Id@Column(name="usu_id")privateintid;@Column(name="usu_nome")privateStringnome;@Column(name="usu_login")privateStringlogin;@Column(name="usu_senha")privateStringsenha;@Column(name="e_mail")privateStringe_mail;//get e set }Review.java@EntitypublicclassReview{@Id@Column(name="rev_id")privateintid;@Column(name="rev_desc")privateStringdescricao;@ManyToOne@JoinColumn(name="usu_id")privateUsuariousuario;}
O @ManyToOne diz que um Review tem um Usuario e um Usuario pode ter muitos Review. Desta maneira, quando você carregar o Review, basta chamar review.getUsuario() para obter o usuário relacionado.
Procure por @OneToOne e @OneToMany. Ou melhor, leia a documentação do Hibernate (www.hibernate.org/docs).
javaflex
No mapeamento de Usuario você vai precisar mapear “reviews” como OneToMany conforme o wagnerfrancisco falou pra você pesquisar. Depois disso faz a query para o que você quer, retornando os usuários onde existam reviews:
List resultado = suaSession.createCriteria(Usuario.class)
.add(Restrictions.isNotEmpty("reviews"))
.list();
Vi vários exemplos utilizando os relacionamentos e todos não mostram usando jsp. O UsuarioWeb.id tem o id do usuario que está logado. Como faço para passar para cadastrar o produto ele associando ao usuario que cadastrou?
}
desta forma ele esta salvando o campor usu_id com o id do usuario logado.
Agora não estou conseguindo fazer o list, poderia me ajudar?
javaflex
Se ja resolveu seu problema de mapeamento com hibernate seria melhor formular seu novo problema em um topico novo e numa categoria de forum voltada para web. Nao esqueca de especificar qual framework web está usando, mostrar o codigo completo envolvido e explicar mais pontualmente o problema no codigo.