Saludos, estuve intentando hacer una consulta en Hibernate, pero Hibernate me da fallo, os expongo un poco las clases:
Código JAVA:
Ver originalpublic class Address {
Customer customer;
//getters y setters...
}
Código JAVA:
Ver originalpublic class Customer {
Address address;
//getters y setters...
}
Address.hbm.xml:
Código XML:
Ver original<hibernate-mapping>
<class name=”entities.Address” table=”ADDRESS”>
<id column="address_id" name="addressId">
<generator class="identity"/>
</id>
<property name=”city”>
<column name=”city” />
</property>
</class>
</hibernate-mapping>
Customer.hbm.xml:
Código XML:
Ver original<hibernate-mapping>
<class name=”entities.Customer” table=”CUSTOMER”>
<id column="customer_id" name="customerId">
<generator class="identity"/>
</id>
<property name=”name”>
<column name=”NAME” />
</property>
<many-to-one name=”address” column=”address_id” cascade=”all” unique=”true” />
</class>
</hibernate-mapping>
Código JAVA:
Ver originalCustomer customer = new Customer();
customer.setName("Alex");
Address address = new Address();
address.setCity("Madrid");
customer.setAddress(address);
address.setCustomer(customer);
session.save(customer);
//fetch all customers
Query query = session.createQuery("from Customer customer where address_id=?");
for(Iterator it
=query.
iterate();it.
hasNext();){ Customer customer1 = (Customer) it.next();
Address address1 = customer1.getAddress();
System.
out.
println("customer ID: " + customer1.
getCustomerId()); System.
out.
println("address ID: " +address1.
getAddressId()); }
}
System.
out.
println(this.
elementos(1));
}
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.