如何将以下oracle提示sql查询转换为Querydsl代码

时间:2016-04-16 07:53:24

标签: optimization querydsl hint

如何将以下sql转换为Querydsl代码? (将oracle优化器提示转换为querydsl代码)

已创建EMP表的SAL列,即idx_emp_sal名称的索引。

在emp(sal)上创建索引idx_emp_sal;

选择/ * + index_desc(emp idx_emp_sal)* /         ename,sal 来自emp 其中sal> 0;

2 个答案:

答案 0 :(得分:0)

我完全不了解你的SQL查询,但应该是这样的。

SQL查询

SELECT ename, sal 
FROM emp
WHERE sal > 0
ORDER BY sal DESC

<强> QueryDSL

QEmp qemp = QEmp.emp;
jpaQuery.from(qemp)
        .where(qemp.sal.gt(0))
        .orderBy(qemp.sal.desc())
        .select(qemp.ename, qemp.sal)
        .fetch();

答案 1 :(得分:0)

您可以在querydsl中使用addFlags功能添加Oracle查询提示

例如

 .addFlag(AFTER_SELECT, "/*+ index_desc(emp idx_emp_sal) */ ")