1

是否可以在播放框架实体查询上指定数据库索引提示。

我的代码如下所示:

public static List<Transaction> findOnInactive(Date date) {
    return Transaction.find(
            "date = ? and account in ( select d.acctNb from account d "
                    + " where d.date = ? and (d.inactive = true or d.blocked = true)" 
                    + " group by d.acctNb )", date, date).fetch();
}

运行生成的查询需要 20 秒。但是手动运行相同的查询

select * from transaction with (INDEX(_dta_index_k1_1)) ...

只需 1 秒。无论如何,我可以在我的 JPA 查询中指定索引提示吗?

4

1 回答 1

2

您需要使用本机 SQL 查询,如下所示:

return JPA.em().createNativeQuery(
    "select * from transaction with (INDEX(_dta_index_k1_1)) ...",
    Transaction.class).getResultList();
于 2012-04-10T08:45:50.873 回答