Spring谓词jpa查询问题

Spring predicate jpa query issue

我编写了一个谓词查询来连接名字和姓氏并与输入的 character.But 进行比较,但我无法获得所需的结果。

QUser user = QUser.suer;
BooleanExpression exp = user.isNotNull();
String received = "Jack Jones"
expression =  expression.and((userProfile.firstName.toLowerCase().concat(" "    + userProfile.lastName.toLowerCase())).like('%'+(received)+'%'));

我在前端输入时没有得到 Jack Joneas 的记录。需要做什么来解决问题。

您的 (Java) 表达式 " " + userProfile.lastName.toLowerCase() 调用第二个参数的 toString() 方法,生成未定义的固定字符串表达式而不是动态表达式。

您实际想要实现的是连接 3 个部分:

  • 名字
  • 常数space
  • 姓氏

所以你的最后一行代码应该是这样的:

expression =  expression.and((userProfile.firstName.toLowerCase().concat(" ").concat(userProfile.lastName.toLowerCase())).like('%'+(received)+'%'));