Querydsl 喜欢惊喜

The*_*Wes 5 java spring jpql querydsl spring-data

我刚刚开始使用 Querydsl,并且非常享受它为与 JPA 交互带来的改进。

我剩下的一个问题是为什么你必须用 包装like参数%

我是否配置不当?考虑到有一种方法starts/endsWith,我假设like(str)会自动包装我的str.

但令我惊讶的是,我需要这样做:"%" + str + "%"得到我所期望的。

这是为什么?有没有更好的办法?

JRA*_*TLL 6

就在这里。(至少在 QueryDSL 4.1.3 中),有一种contains(String s)方法及其变体(包含IgnoreCase等)。这就是你要找的。


Mac*_*ski 2

Like是否可以进行自定义通配符匹配(该算法希望您%自己添加字符以及您认为需要的任何位置)。

除了具有隐式字符的StartsWith/之外,还有Containing关键字,它可以在字符前面添加和附加字符。这就是您在这里寻找的。EndsWith%%

findByAttributeContaining(String charset);
Run Code Online (Sandbox Code Playgroud)

文档示例:spring jpa 示例