Java 如何使用querydsl调用mysql函数?

Java 如何使用querydsl调用mysql函数?,java,sql,hibernate,jpa,querydsl,Java,Sql,Hibernate,Jpa,Querydsl,我有点赶时间,所以我只想问一个关于querydsl的快速问题。根据我的研究,查询dsl不支持存储过程,但可以支持数据库功能。我的问题是如何使用querydsl调用这些数据库函数?您可以使用基于TemplateExpression的任意JPQL语法注入到查询中 e、 g 如果使用Hibernate 4.3或任何其他兼容JPA 2.1的提供程序,则可以使用函数语法调用SQL函数 所以这个例子会变成 query.where(Expressions.booleanTemplate("function('

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

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

e、 g

如果使用Hibernate 4.3或任何其他兼容JPA 2.1的提供程序,则可以使用函数语法调用SQL函数

所以这个例子会变成

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

不会回答你的问题吗?是的,我已经经历了很多次了。但基于querydsl的当前版本,它有点过时。我的错。想想我什么都没说:-哇…太巧了,蒂莫。。我只是看了看幻灯片。。我想知道的是,你把一切都记在心里了。。非常感谢。我一定会尝试你的建议。@Timo我正在尝试,但我收到一个:org.hibernate.hql.internal.ast.QuerySyntaxException:unexpected ast nodeNice one。还有可能在一次调用中处理更多的函数(嵌套的内部函数)吗。。。基本上。。。QueryDSL不支持类型安全函数,尽管可以通过@NamedStoredProcedureQuery提取类型。那太可悲了。
query.where(Expressions.booleanTemplate("function('func1', {0}, {1})", arg1, arg2)"));