我写了一个谓词查询来连接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)+'%'));
当我输入前端时,我没有得到Jack Joneas的记录。解决问题需要做些什么。
答案 0 :(得分:1)
您的(Java)表达式" " + userProfile.lastName.toLowerCase()
调用第二个参数的toString()
方法,生成未定义的固定String表达式而不是动态表达式。
您实际想要实现的是连接3个部分:
所以你的最后一行代码应如下所示:
expression = expression.and((userProfile.firstName.toLowerCase().concat(" ").concat(userProfile.lastName.toLowerCase())).like('%'+(received)+'%'));