有一种方法可以使用QueryDSL执行它吗? (粗体):
SELECT * FROM Venue WHERE Name like'%cafe%' COLLATE Latin1_general_CI_AI
我正在使用JPA和hibernate。
答案 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%"));