Necesito para combinar 2 tablas con hql, ambos están teniendo columna común, pero table1 columna común es integer y table2 columna común es String

Por ejemplo,

select a.id as id,a.name as name,b.address as address 
from Personal as a,Home as b 
where a.id=b.studid

Aquí a.id es un integer mientras b.stduid es un string, pero los Datos de ambas columnas es el mismo.

¿Cómo puedo obtener el resultado de la consulta en consulta hql?

InformationsquelleAutor ver | 2011-01-25

3 Comentarios

  1. 64

    HQL apoya CAST (si la base de datos subyacente es compatible), se puede utilizar:

    select a.id as id,a.name as name,b.address as address 
    from Personal as a,Home as b
    where cast(a.id as string) = b.studid 

    Ver también:

    • Para el elenco he tenido que utilizar el nombre de clase completo (por ejemplo,java.lang.String) cuando se utiliza HQL dentro de un @Query anotación proporcionada por la primavera-datos-jpa.
  2. 6

    Usted realmente necesita pensar ¿por qué tienes la necesidad de unir dos entidades por las propiedades de diferentes tipos. Lo más probable es que sugiere que algunas de las entidades necesitan ser rediseñados, que podría incluir el cambio de tipos de datos para las columnas de la base de db tablas. Si el modelo es correcto, no habrá necesidad de torcer Hibernate.

    • Mientras que el casting va a resolver su problema en el corto plazo creo que 01es tiene un punto. Algo parece estar mal cuando usted necesita para lanzar IDs.
    • Veo estos tipos de no-respuestas de todo el desbordamiento de pila. Por un lado, 01es es probablemente la razón sobre el modelo más probable roto. Por otro lado, la mayoría del mundo real no son los sistemas refactorable a la caída de un sombrero.
  3. 2

    Di cuenta de que usted está usando JPA, allí no se puede convertir datatpes. En el lenguaje de consulta, sólo los valores del mismo tipo se pueden comparar! leer en http://download.oracle.com/javaee/5/tutorial/doc/bnbuf.html#bnbvu

    • sí, mi consulta es malo, pero necesito resultado de esta consulta con hql cast… es posible?
    • Creo que es posible sólo en modo de hibernación, pero usted está usando JPA? @axtavt se te da el enlace para hibernar docs que mal, em yo derecho?

Dejar respuesta

Please enter your comment!
Please enter your name here