如何使用querydsl调用mysql函数?

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

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

例如

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)"));