JPQL中的子查询(多选)

时间:2015-04-20 15:29:15

标签: java postgresql jpql

我的数据表中有deux表。 Account表和AccountType表。我需要一个JPQL查询来检索所有具有列类型的帐户(在表AccountType中)等于" BalanceSheet",我还需要另一个帐户来检索列类型(在表AccountType中)等于的所有帐户"年度结算"

我试着这样做不会起作用。

Query query = daoFactory
            .getEntityManager()
            .createQuery(
                    "SELECT a FROM Account a WHERE a.deleted=false AND a.type_id IN (SELECT id FROM "
                    + "AccountType WHERE deleted=false AND kind='BalanceSheet')");
List<Account> result = query.getResultList();

1 个答案:

答案 0 :(得分:0)

您似乎忘了向identification variable实体提供AccountType

SELECT a 
  FROM Account a 
 WHERE a.deleted=false 
   AND a.type_id IN (SELECT at.id FROM AccountType at
                      WHERE at.deleted=false 
                        AND at.kind= 'BalanceSheet')

另见: