在QueryDSL-JPA上整理提示

时间:2015-04-14 18:19:21

标签: sql hibernate querydsl

有一种方法可以使用QueryDSL执行它吗? (粗体):

SELECT * FROM Venue WHERE Name like'%cafe%' COLLATE Latin1_general_CI_AI

我正在使用JPA和hibernate。

1 个答案:

答案 0 :(得分:4)

您可以使用addFlag(QueryFlag.Position position, String flag)方法,记录here

类似于以下内容应该做你想做的事情:

query.addFlag(QueryFlag.Position.END, "COLLATE Latin1_general_CI_AI");

在评论中回答您的问题时,如果您需要支持多个谓词的解决方案,则可以使用BooleanTemplate的{​​{1}}方法,记录here

类似于以下内容应该做你想做的事情:

create(String template, Object one)

您的查询应如下所示:

BooleanTemplate.create("{0} COLLATE Latin1_general_CI_AI", venue.name.like("%cafe%"));