有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSpring谓词jpa查询问题

我编写了一个谓词查询,用于concat firstname和lastname,并与输入的字符进行比较。但是,我无法得到预期的结果

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

当我在前端打字时,我没有得到杰克·乔尼斯的记录。需要做些什么来解决这个问题


共 (1) 个答案

  1. # 1 楼答案

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

    实际上,您想要实现的是将三个部分连接起来:

    • 名字
    • 恒定空间

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

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