Pessoal,
Tenho a classe Cliente com o atributo
private Endereco endereco.
O mapeamento da classe Cliente é
<?xml version=“1.0” encoding=“UTF-8”?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
“http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd”>
<hibernate-mapping package=“entidade”>
<class name=“Cliente” table=“CLIENTE”>
<id name=“lngCodigo”>
<generator class=“increment”></generator>
</id>
<!-- Propriedades e campos -->
<property name=“strNome”></property>
<property name=“strTelefone”></property>
<property name=“strDocumento”></property>
<many-to-one name=“endereco” class=“entidade.Endereco” column=“lngEndereco” cascade=“none”>
</many-to-one>
</class>
</hibernate-mapping>
A minha dúvida é como eu faço no Hibernate uma consulta para retornar o cliente e seu endereço? Isto é, retornar todos os meus cliente e seu endereço e também retornar um cliente específico e seu endereço.
Tentei fazer assim
String strConsulta = "from Cliente, Endereco " +
"where Cliente.LngEndereco = Endereco.LngCodigo " +
“and Cliente.LngCodigo = :lngCodigo”;
Query qry = session.createQuery(strConsulta);
qry.setInteger(“lngCodigo”, lngCliente);
E assim
String strConsulta = "from Cliente inner join Endereco " +
"on Cliente.LngEndereco = Endereco.LngCodigo " +
“where Cliente.LngCodigo = :lngCodigo”;
Query qry = session.createQuery(strConsulta);
qry.setInteger(“lngCodigo”, lngCliente);
Mais não deu certo. Dá a mensagem
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” org.hibernate.HibernateException: Invalid path: ‘null.LngEndereco’ [from entidade.Cliente, entidade.Endereco where Cliente.LngEndereco = Endereco.LngCodigo and Cliente.LngCodigo = :lngCodigo]
at entidadeDAO.ClienteDAO.selecionar(ClienteDAO.java:92)
at principal.Principal.main(Principal.java:63)ou
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” org.hibernate.HibernateException: unexpected token: on near line 1, column 43 [from entidade.Cliente inner join Endereco on Cliente.LngEndereco = Endereco.LngCodigo where Cliente.LngCodigo = :lngCodigo]
at entidadeDAO.ClienteDAO.selecionar(ClienteDAO.java:92)
at principal.Principal.main(Principal.java:63)