Olá a todos,
Alguem tem algum exemplo de como fazer uma consulta 1:1 com hibernate usando HQL?
Olá a todos,
Alguem tem algum exemplo de como fazer uma consulta 1:1 com hibernate usando HQL?
Fala marcioguj.
Cara eu não entendi direito esse 1:1 que vc fez mas vou te passar alguns exemplos de HQL.
Os exemplos que eu vo passar abaixo serão com base nas classes Cliente e Endereço, que estão abaixo.
public class Cliente{
private Long idCliente;
private Endereco endereco;
}
public class Endereco{
private Long idEndereco;
}
Select para trazer todos os objetos cliente populados:
SELECT c FROM Cliente
Select para trazer um cliente especifico:
SELECT c FROM Cliente c WHERE c.idCliente= :idCliente //Esse idCliente é passado como parâmetro para a consulta
Select para trazer um cliente com o objeto endereço populado
SELECT c FROM Cliente c
LEFT JOIN FETCH c.endereco e
Select para trazer um cliente sem popular o objeto endereço, mas fazendo um filtro por endereço
SELECT c FROM Cliente c
LEFT JOIN c.endereco e
WHERE e.idEndereco = :idEndereco //esse idEndereço pode ser passado como parâmetro para a consulta
Repare nas consultas acima, que quando eu faço o LEFT JOIN FETCH eu trago o objeto populado, mas se for feito só o LEFT JOIN ele ja não é populado.
Espero ter solucionado a tua duvida, mas qualquer coisa posta ai…
Falow
Cara e esse exemplo que estava precisando! muito obrigado! eu preciso trazer o objeto do endereco populado. Estava usando varios metodos, sendo que um join resolve. Vou implementar aqui. O relacionamento e assim:
//entidade pessoa
@OneToOne(mappedBy="pessoa")
public Endereco getEndereco() {
return endereco;
}
//entidade endereco
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="pes_id")
public Pessoa getPessoa() {
return pessoa;
}
Cara e esse exemplo que estava precisando! muito obrigado! eu preciso trazer o objeto do endereco populado. Estava usando varios metodos, sendo que um join resolve. Vou implementar aqui. O relacionamento e assim://entidade pessoa @OneToOne(mappedBy="pessoa") public Endereco getEndereco() { return endereco; } //entidade endereco @OneToOne(cascade = CascadeType.ALL) @JoinColumn(name="pes_id") public Pessoa getPessoa() { return pessoa; }
Hein, entre nesse link abaixo e baixe a apostila PERSISTÊNCIA COM JPA2 E HIBERNATE…
E de uma lida na parte que fala sobre JPQL, ou pesquise no google mesmo, que vc vai achar bastante coisa sobre o assunto…
http://k19.com.br/downloads/apostilas-java
Valeu! vou baixar a apostila!