如何使用querydsl调用mysql函数?

时间:2014-04-10 09:43:41

标签: java sql hibernate jpa querydsl

我很匆忙,我只是想问一个关于querydsl的快速问题。根据我的研究,查询dsl不支持存储过程但可以支持数据库功能。我的问题是如何使用querydsl调用这些数据库函数?

1 个答案:

答案 0 :(得分:18)

您可以在查询中使用基于TemplateExpression的任意JPQL语法注入。

e.g。

query.where(Expressions.booleanTemplate("func1({0}, {1})", arg1, arg2));

如果您使用Hibernate 4.3或任何其他JPA 2.1兼容的提供程序,您可以使用FUNCTION语法来调用SQL函数https://bugs.eclipse.org/bugs/show_bug.cgi?id=350843

所以这个例子会变成

query.where(Expressions.booleanTemplate("function('func1', {0}, {1})", arg1, arg2)"));