本文介绍了如何使用querydsl调用mysql函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

解决方案

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



例如

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

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



所以这个例子会变成

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


I am in little hurry so, i just want to ask a quick question about querydsl. According to my research, query dsl doesn't support stored procedure but can support database functions. My Question is how can we invoke those database functions using querydsl?

解决方案

You can use TemplateExpression based injections of arbitrary JPQL syntax into your query.

e.g.

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

If you use Hibernate 4.3 or any other JPA 2.1 compliant provider you can use the FUNCTION syntax to invoke SQL functions https://bugs.eclipse.org/bugs/show_bug.cgi?id=350843

So the example would turn into

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

这篇关于如何使用querydsl调用mysql函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-15 14:47