QueryDsl生成本机查询

时间:2014-09-29 23:52:40

标签: querydsl

有没有办法将querydsl查询转换为包含查询参数的本机查询?目前我有类似

的东西
    QDrm qdrm = QDrm.drm;

    String table = "drm";
    Path<Object> userPath = new PathImpl<Object>(Object.class, table);
    StringPath usernamePath = Expressions.stringPath(userPath, "accessory_id");
    query.from(qdrm).where(qdrm.accessory_id.eq(100l));
    query.where(qdrm.time.lt("2104-04-14"));

    System.out.println(query.getSQL(usernamePath).getSQL());

这导致以下输出:

select drm.accessory_id
from drm
where drm.accessory_id = ? and drm.time < ?

我的目标是制作

select drm.accessory_id
from drm
where drm.accessory_id = 100 and drm.time < "2104-04-14"

查询将手动执行或通过QueryDSL之外的其他方式执行。

谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

在Configuration或SQLQuery对象上使用setUseLiterals()方法。这已在这里得到解答:

How to get fully materialized query from querydsl