整理关于QueryDSL- JPA的提示

Dyo*_*gio 4 sql hibernate querydsl

有没有办法用QueryDSL执行它?(粗体部分):

SELECT * FROM Venue WHERE名称喜欢'%cafe%' COLLATE Latin1_general_CI_AI

我在休眠状态下使用JPA。

Rob*_*ain 5

您可以使用此处addFlag(QueryFlag.Position position, String flag)记录的方法。

类似于以下内容的内容应该可以满足您的要求:

query.addFlag(QueryFlag.Position.END, "COLLATE Latin1_general_CI_AI");
Run Code Online (Sandbox Code Playgroud)

在评论中回答您的问题,如果您需要一个支持多个谓词的解决方案,则可以使用此处记录BooleanTemplatecreate(String template, Object one)方法。

类似于以下内容的内容应该可以满足您的要求:

BooleanTemplate.create("{0} COLLATE Latin1_general_CI_AI", venue.name.like("%cafe%"));
Run Code Online (Sandbox Code Playgroud)

您的查询应类似于:

query
.from(venue)
.where(BooleanTemplate.create("{0} COLLATE Latin1_general_CI_AI", venue.name.like("%cafe%"))
.and(BooleanTemplate.create("{0} COLLATE Latin1_general_CI_AI", venue.name2.like("%milk%"))))
.list(venue.name, venue.name2);
Run Code Online (Sandbox Code Playgroud)