Foros del Web » Programación para mayores de 30 ;) » Java »

Error al crear sentencias "createSQLQuery" en Hibernate.

Estas en el tema de Error al crear sentencias "createSQLQuery" en Hibernate. en el foro de Java en Foros del Web. Hola tengo un problema al crear sentencias en Hibernate usando createSQLQuery en un ejemplo sencillo ... Query qry = Session().createSQLQuery( "select {usu.*} from Usuario {usu}" ...
  #1 (permalink)  
Antiguo 03/10/2006, 07:40
 
Fecha de Ingreso: noviembre-2005
Mensajes: 19
Antigüedad: 18 años, 5 meses
Puntos: 0
Exclamación Error al crear sentencias "createSQLQuery" en Hibernate.

Hola tengo un problema al crear sentencias en Hibernate usando createSQLQuery en un ejemplo sencillo ...

Query qry = Session().createSQLQuery(
"select {usu.*} from Usuario {usu}"
).addEntity("usu", Usuario.class);


esto me retorna el siguiente error....

ORA-00904: "USU"."APEPATERNO": identificador no válido

el campo APEPATERNO esta correctamente escrito y no es una palabra reservada, por eso no entiendo el por que del mensaje.

*nota: campo usuario: USERNAME,PASSWORD,NOMBRE,APEPATERNO,APEMATERNO

cualquier ayuda o sugerencia será bienvenida ....
  #2 (permalink)  
Antiguo 03/10/2006, 10:59
 
Fecha de Ingreso: abril-2005
Ubicación: en Santa Cruz - España
Mensajes: 429
Antigüedad: 19 años
Puntos: 1
Mira yo en mi consulta coloco asi:

session.createSQLQuery("(Select {R.*} FROM Reactivo as {R}","R",Reactivo.class).list();

y me funciona perfectamente no he leido lo de addEntity

chausito
  #3 (permalink)  
Antiguo 03/10/2006, 13:46
 
Fecha de Ingreso: noviembre-2005
Mensajes: 19
Antigüedad: 18 años, 5 meses
Puntos: 0
Cita:
Iniciado por x_women Ver Mensaje
Mira yo en mi consulta coloco asi:

session.createSQLQuery("(Select {R.*} FROM Reactivo as {R}","R",Reactivo.class).list();

y me funciona perfectamente no he leido lo de addEntity

chausito
Hola gracias por tu respuesta, pero he provado de la manera tu indicas (a pesar que createSQLQuery con mas argumentos de un unico string, es un methodo "deprecated" pues estoy usando la Hibernate3) sin embargo tengo exactamente el mismo resultado .... es decir...

ORA-00904: "USU"."APEPATERNO": identificador no válido

alguna sugerencia se los agradeceria....
  #4 (permalink)  
Antiguo 05/10/2006, 10:43
 
Fecha de Ingreso: noviembre-2005
Mensajes: 19
Antigüedad: 18 años, 5 meses
Puntos: 0
sera un bug?
  #5 (permalink)  
Antiguo 06/10/2006, 01:01
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
¿Las llaves para que son ("{,}"?

Yo tengo algo así en mi código y no pongo llaves para nada:
Código:
          List directorios = theSession.createQuery(
              "from TgidDirectorioBear dir "
                  + " where dir.tgidPortalBear.porSufijo = ? "
                  + " and dir.tgidDirectorioBearsHijo.size = 0 ").setString(0,
              portalSufijo).list();
Aunque de todas formas, el error lo da Oracle... asi que habria que ver si puedes visualizar la sentencia SQL exacta que Hibernate intenta ejecutar y escribirla a mano en un SQLPlus, SquirrelSQL o lo que sea. Para visualizar la sentencia, activa el debug a través del fichero de configuracion del Log4J

S!
  #6 (permalink)  
Antiguo 09/10/2006, 11:58
 
Fecha de Ingreso: noviembre-2005
Mensajes: 19
Antigüedad: 18 años, 5 meses
Puntos: 0
He probado la consulta (no fue nada dificil) ya que he reducido la consulta a una pequeña sentencia de un tabla de 4 campos de tipo string esto a manera de sintetizar la función para hallar el motivo por el cual obtengo este error, bueno te decia que probe la sentencia que retorna el hibernate en pl/sql y no retorna ningun error.... bueno también le quite las llaves..otra cosa estoy usando createSQLQuery, con createQuery no tengo problemas, claro seguro por ahi no faltará alguien que me diga .."hey usa createQuery y no te hagas un mundo", bueno pues bienvenida la sugerencia pero no tomaré esa via ya que me interesa mucho resolver este tema.

Gracias de todas formas...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 21:19.