QueryDsl查询参数?

时间:2015-11-08 05:17:47

标签: java querydsl

使用jpa,我们有NamedQuery女巫让我们以这种方式传递参数:

public <T2> T2 getSingleResult(String namedQuery, Map<String, String> parameters, Class<T2> clazz) {

    TypedQuery<T2> typedQuery = entityManager.createNamedQuery(namedQuery, clazz);
    for (Entry<String, String> parameter : parameters.entrySet()) {
        typedQuery.setParameter(parameter.getKey(), parameter.getValue());
    }
    return typedQuery.getSingleResult();
}

所以我想知道,有没有类似的方法稍后使用QueryDsl传递参数?

1 个答案:

答案 0 :(得分:0)

我在PathBuilder中使用以下方法:

PathBuilder pathBuilder = new PathBuilder(Object.class, "my_table");
SQLQuery query = new SQLQuery(connection, OracleTemplates.DEFAULT);
query.from(pathBuilder.getRoot())
    .where(pathBuilder.get("my_column").eq(new Param(String.class, "param1")))
    .set(new Param(String.class, "param1"), "67")
    .list(pathBuilder.get("my_column"));

将代码调整为静态生成的QueryDSL bean应该是微不足道的。