2009-06-10 14 views
34

Digamos que tengo dos tablas (A, B) como:Ingreso sin asociación en HQL

A {id, a, c} 
B {id, b, c} 

también tengo sus entidades. Quiero escribir un HQL de manera que el conjunto de resultados será como (donde Ac = Bc):

(a1, b1, c1) 
(a2, b2, c2) 
(a3, b3, c3) 
... 

Desde on cláusulas no son compatibles con hibernación estoy atascado y no sé cómo escribir la consulta .

Respuesta

44

usted tiene que utilizar la combinación cruzada notación:

from A as table_a , B as table_b 
where table_a.c = table_b.c 

Por supuesto, no hay manera de implementar combinaciones externas de esta manera, lo que podría tener algunos problemas si ese es su caso.

Para el caso análogo con criterios se refieren a: hibernate-criteria-joining-table-without-a-mapped-association

+0

@ II-BHIMA puedo usar la unión externa izquierda en este secenario – dom

1

si usted quiere hacer combinación externa puede hacer la consulta sub y administrar operación OR (que funciona para mí). es hacer que la consulta más compleja y lo peor performant pero funciona :-)

0

si tanto la tabla se relacionan entre sí a través de clave externa, entonces puede intentar esto:

let:

Un {id (clave principal), a, c} B {id (clave externa), b, c}

definen una variable del tipo parent (A) con setter y getter en el pojo de la clase B. Después de eso puedes escribir la consulta De este modo. dejarlo 'AA'

select tbl_b.a,tbl_a.a,tbl_b.b,tbl_a.b,tbl_b.c,tbl_a.c from B tbl_b inner join tbl_b.AA tbl_b 
Cuestiones relacionadas