Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/11/2012, 12:25
progxt
 
Fecha de Ingreso: noviembre-2012
Mensajes: 8
Antigüedad: 11 años, 6 meses
Puntos: 0
Error en consulta SQL en Hibernate

Saludos, estuve intentando hacer una consulta en Hibernate, pero Hibernate me da fallo, os expongo un poco las clases:


Código JAVA:
Ver original
  1. public class Address {
  2.  
  3.      Integer addressId;
  4.      String city;
  5.      Customer customer;
  6.  
  7.      //getters y setters...
  8.     }


Código JAVA:
Ver original
  1. public class Customer {
  2.     Integer customerId;
  3.     String name;
  4.     Address address;
  5.  
  6. //getters y setters...
  7. }


Address.hbm.xml:

Código XML:
Ver original
  1. <hibernate-mapping>
  2.   <class name=”entities.Address” table=”ADDRESS”>
  3.    
  4.   <id column="address_id" name="addressId">  
  5.      <generator class="identity"/>  
  6.    </id>
  7.  
  8.     <property name=”city”>
  9.      <column name=”city” />
  10.     </property>
  11.    
  12.   </class>
  13. </hibernate-mapping>



Customer.hbm.xml:

Código XML:
Ver original
  1. <hibernate-mapping>
  2.   <class name=”entities.Customer” table=”CUSTOMER”>
  3.  
  4.  <id column="customer_id" name="customerId">  
  5.      <generator class="identity"/>  
  6.    </id>
  7.  
  8.   <property name=”name”>
  9.      <column name=”NAME” />
  10.     </property>
  11.    
  12.     <many-to-one name=”address” column=”address_id” cascade=”all”  unique=”true” />
  13.   </class>
  14. </hibernate-mapping>


Código JAVA:
Ver original
  1. Customer customer = new Customer();
  2.          customer.setName("Alex");
  3.  
  4.          Address address = new Address();
  5.          address.setCity("Madrid");
  6.        
  7.          customer.setAddress(address);
  8.          address.setCustomer(customer);
  9.          session.save(customer);
  10.  
  11.    //fetch all customers
  12.  
  13. public void elementos(Integer id){
  14.             Query query = session.createQuery("from Customer customer where address_id=?");
  15.             for(Iterator it=query.iterate();it.hasNext();){
  16.              Customer customer1 = (Customer) it.next();
  17.              Address address1 = customer1.getAddress();
  18.                 System.out.println("customer ID: " + customer1.getCustomerId());
  19.                 System.out.println("address ID: " +address1.getAddressId());
  20.               }
  21.  
  22. }
  23.  
  24.         System.out.println(this.elementos(1));
  25.  
  26. }




Este es el fallo que me da: Error en elementos: org.hibernate.QueryException: Expected positional parameter count: 1, actual parameters: [] [from Customer customer where address_id=?]


Os puse las clases y demás para orientaros, el fallo está en la sintaxis de la consulta SQL, supongo que a partir del where en adelante, de ahí vendrá el fallo, pero no sé cómo ponerlo para que sea correcto.

Aquí está el fallo: Query query = session.createQuery("from Customer customer where address_id=?");

A ver si me podeis ayudar.

Un saludo y muchas gracias de antemano.

Última edición por progxt; 05/11/2012 a las 12:30