¿Qué tal elAntonie? Muchas gracias por tu sugerencia. Trate de la forma como comentas pero la verdad es que no funcionó, así que recurri a otro método de Hibernate. Lo que terminé haciendo fue esto:
Código:
DetachedCriteria dCriteria=
DetachedCriteria.forClass(TInvoicePrefixHis.class)
.setProjection(Property.forName("invoicePrefixSeqId"))
.add(Restrictions.sqlRestriction("nickname||invoice_Type||'-'||lst_Invoice_Nbr=?", invoiceNumber, Hibernate.STRING));
Criteria c=getSession().createCriteria(TJeLineHis.class);
c.add(Restrictions.not(Restrictions.in("jeType",jeTypes)));
c.add(Restrictions.eq("outboundId", outbound));
c.add(Property.forName("invoicePrefixSeqId").in(dCriteria));
c.addOrder(Order.asc("jeLineSeqId"));
jeLines=c.list();
Lo que queria hacer en un principio, era tomar la primera lista que me devolviera el query "Select * from t_invoice_prefix_his p where p.nickname || p.invoice_type || '- '|| p.lst_invoice_nbr =: invoice" y meterla en un
in para hacer un otro query con esos valores. Utilizando el sqlRestriction pude utilizar el DetachedCriteria y meterlo dentro de mi query principal, además de que solucioné el problema que tenía para concatenar los campos contra los que buscaba comparar el parámetro de entrada.
Nada más quiero hacer notar que dentro del sqlRestriction se deben escribir los nombres de los campos como están en la BD y no como están en los beans.
Muchísimas gracias por tu ayuda y espero que a alguien más le sea de utilidad. Si alguien tiene otra idea y la quiere compartir es bienvenida. Salu2.