我在Java中定义了一个SQL查询:
String queryString =
"select payee_id from ("
+ "select distinct d.company_name, d.business_type, d.service_type,m.payee_id "
+ " from BOOKER.PC_PAYEE_BACKFILL_DATA d, BOOKER.PC_PAYEE_BACKFILL_METADATA m "
+ " where d.DATA_RECORD_ID=m.DATA_RECORD_ID "
+ " and d.status = '"
+ PayeeBackfillStatus.VM_ACCEPTED
+ "' and d.canceled = '"
+ AppConstants.FALSE_CHAR
+ "' and d.wave_num = "
+ waveNumber
+ " ) "
+ "group by payee_id having count(*) > 1 ";
我需要将其转换为HQL。但是HQL不支持内部查询。那么可以做什么呢?一种方法是运行内部查询,然后使用Java的集合提取payee_id。但这是一个解决方法。您可以假设PC_PAYEE_BACKFILL_DATA
和PC_PAYEE_BACKFILL_METADATA
的任何映射类名称。请帮忙。
答案 0 :(得分:0)
HQL无法这样做。
答案 1 :(得分:0)
HQL支持select中的子查询,请参考这个,希望这个可以帮到你 http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/queryhql.html#queryhql-subqueries