Ajuda em Query do Hibernate[Resolvido]

6 respostas
javahibernate
D

Estou tendo problema em montar uma query no HQL no Hibernate,olhem o erro que da:

Exception in thread “AWT-EventQueue-0” org.hibernate.QueryException: could not resolve property: Pedido of: Classes.Cliente [select c from Classes.Cliente c inner join c.Pedido as Pedido]

Qualquer ajuda eu agradeço

Tela da Query

SessionFactory sessionFactory = HibernateUtil.getSessionFactory();

  Session session = sessionFactory.openSession();

   List tabela = session.createQuery("select c from Cliente c inner join c.Pedido as Pedido").list();
   for (Iterator iterator = tabela.iterator(); iterator.hasNext();){
   Cliente clien = (Cliente) iterator.next(); 
  Pedido ped = (Pedido) iterator.next(); 
   DefaultTableModel model = (DefaultTableModel) TBL_Orcamento.getModel();
   model.addRow(new Object[]{


   clien.getNome(),
   ped.getTipo_Servico(),

     });

    }

Mapeamento do Cliente XML

<?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>
 <class name="Classes.Cliente" table="cliente" >
  <id name="ID_Cliente" column="ID_Cliente">
      <generator class="native"/>
  </id>
     <property name="Nome" type="string" length ="50" column="Nome" />

  </class>
</hibernate-mapping>

Mapeamento do Pedido XML

> <?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>
>  <class name="Classes.Pedido" table="pedido">
>   <id name="ID_Pedido" column="ID_Pedido">
>       <generator class="native"/>
>   </id>    
>       <property name="Tipo_Servico" type="string" length ="50" column="Tipo_Servico"/>
>       <one-to-one name="clienteID_Cliente" cascade="all"/>
>    </class>
> </hibernate-mapping>

6 Respostas

lvbarbosa

Douglas, a query é case sensitive. Você escreveu c.Pedido. É assim que a variável é nomeada? Com P maiúsculo mesmo? É disso que a engine tá reclamando, de não ter encontrado um atributo chamado Pedido dentro de Cliente.

D

é assim que fiz no MySQL mas não da certo no Hibernate

select cliente.Nome,pedido.Tipo_Servico from cliente join pedido;

P

Tem possibilidade de você usar o mapeamento pela classe Java?

Seria muito mais fácil e melhor.

D

Melhor em que ?

P

Pra mim, é melhor para entendimento e resolver problemas.

Não sou capaz de opinar sobre performance, pois nunca usei em XML.

Já que você vai ter a classe de representação, pra que mapear no XML? Coloque as anotações.

D

Ja Consegui Resolve ta de Boa

Criado 22 de fevereiro de 2017
Ultima resposta 23 de fev. de 2017
Respostas 6
Participantes 3