Error en consulta SQL en Hibernate

Estuve intentando hacer una consulta en Hibernate, pero Hibernate me da fallo, expongo la consulta:

Query query = session.createQuery("from Customer customer where address_id=?");




-> 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=?]



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.


A ver si me pudieras ayudar.

Respuesta
1

No estoy familiarizado con Hibernate, pero si la sintaxis falla, yo siempre hago cosas como separar las comillas de la consulta, o modificar cosillas que puedan tener algo que ver.

Siento no poder ayudarte, pero es un SGBD que desconozco :-(

Suerte!

4 respuestas más de otros expertos

Respuesta
1

El error que te da dice que se espera que le envíes un parámetro (que sustituya al "?" en la query) y no le has pasado ninguno.

Puedes ponerle parámetros a las queries con "?" y estableciéndolos por orden, o con un nombre (precedido de ":") y estableciéndolos por dicho nombre. En resumen, te falta la llamada a query. SetParameter(int, value), aunque te recomiendo hacerlo por nombre en lugar de número de orden.

Aquí tienes ejemplos de cómo hacerlo:

<a>http://www.mkyong.com/hibernate/hibernate-query-examples-hql/</a>

Respuesta
1

La estructura de la sentencia debería ser así:

Query query = session.createSQLQuery(
"select * from tabla where address_id= :controlid");

Recibe un saludo,



Respuesta
1

Hace siglos que no programo y en SQL menos todavía, pero por lo poco que recuerdo de programación tienes que definir una variable de memoria en la que buscar o hacer consultas u operaciones y luego situar el cursor o puntero al principio de esa variable para que no te de fallo, y creo que es justo en esto donde te esta fallando, los comandos exactos ya te digo que no los se, pero espero que te sirva de ayuda.

Siento no poder ayudarte mas

Respuesta
1

Lo que debe suceder es que ejecutas la query sin determinar los parámetros posicionales con

Query. SetParameter(0, address_id); con address_id la variable donde tengas el valor del parámetro.

Mira en este link para una explicación mas detallada

http://www.javatutoriales.com/2010/07/hibernate-parte-9-parametros-en-hql.html

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas