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
Usuario.java
@Entity
public class Usuario {
@Id
@Column(name = "usu_id")
private int id;
@Column(name = "usu_nome")
private String nome;
@Column(name = "usu_login")
private String login;
@Column(name = "usu_senha")
private String senha;
@Column(name = "e_mail")
private String e_mail;
//get e set
}
Review.java
@Entity
public class Review {
@Id
@Column(name = "rev_id")
private int id;
@Column(name = "rev_desc")
private String descricao;
@Column(name = "prod_id")
private int prod_id;
@Column(name = "usu_id")
private int usu_id;
}
Com Hibernate não faz mapeamento de ids desta maneira. Você mapeia o relacionamento entre os objetos. Por exemplo:
Usuario.java
@Entity
public class Usuario {
@Id
@Column(name = "usu_id")
private int id;
@Column(name = "usu_nome")
private String nome;
@Column(name = "usu_login")
private String login;
@Column(name = "usu_senha")
private String senha;
@Column(name = "e_mail")
private String e_mail;
//get e set
}
Review.java
@Entity
public class Review {
@Id
@Column(name = "rev_id")
private int id;
@Column(name = "rev_desc")
private String descricao;
@ManyToOne
@JoinColumn(name = "usu_id")
private Usuario usuario;
}
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). 
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();
hum… Então no meu jsp eu coloco:
<input type="text" name="review.usuario.id" value="${usuarioWeb.id}" />
[quote=Vinustux]hum… Então no meu jsp eu coloco:
<input type="text" name="review.usuario.id" value="${usuarioWeb.id}" />
[/quote]
Daí pra frente não sei, você parece estar falando de outro assunto não direcionado a Hibernate.
Vou postar classe Produto(atualizada) e não review, Usuario(atualizada).
Usuario.java
@Entity
public class Usuario {
@Id
@Column(name = “usu_id”)
private int id;
@Column(name = “usu_nome”)
private String nome;
@Column(name = “usu_login”)
private String login;
@Column(name = “usu_senha”)
private String senha;
@Column(name = “e_mail”)
private String e_mail;
@OneToMany(mappedBy = "usuario", cascade = CascadeType.ALL)
public Collection<Produto> listaProdutoUsuario;
}
Produto.java
public class Produto {
@Id
@Column(name = "prod_id")
private int id;
@Column(name = "prod_cod")
private String codigo;
@Column (name = "prod_nome")
private String nome;
@ManyToOne
@JoinColumn (name = "usu_id")
private Usuario usuario;
}
ProdutoController.java
@Restrito
@Post("/produto")
public void salvar(final Produto produto){
produtoDAO.save(produto);
result.redirectTo(this).listar();
}
novo.jsp(jsp que cadastra o produto)
<input type="text" name="usuario.id" value="${usuarioWeb.id}" />
<label> Código: </label>
<input type="text" name="produto.codigo" /> <br/>
<label>Nome:</label>
<input type="text" name="produto.nome"/> <br/>
<label>Descriçâo:</label>
<textarea name="produto.descri"></textarea><br/>
<input type="submit" value="salvar" class="btn"/>
</form>
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?
javaflex
Consegui a primeira parte:
no ProdutoController.java:
public void salvar(final Produto produto, Usuario usuario){
usuario = this.usuarioDAO.loadById(usuario);
produto.setUsuario(usuario);
…
}
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?
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.