我从字符串列创建了一个动态查询,如下所示:
String myColumn = "name";
String myName = "John";
QStudent student = QStudent.student;
query.from(student);
StringPath column = Expressions.stringPath(student, myColumn);
query.where(column.eq(myName));
这很好用!当字段不是字符串时,我还需要使用相同的代码,如下所示:
String myColumn = "some_id";
Long myId = "10";
QStudent student = QStudent.student;
query.from(student);
StringPath column = Expressions.stringPath(student, myColumn);
query.where(column.eq(myId));
我在 column.eq(myId)上收到错误,因为myId不是字符串。
我的问题是如何在不将myId的类型更改为String的情况下进行此比较?
错误消息:
SimpleExpression类型中的方法eq(String)不适用于参数
答案 0 :(得分:0)
您案例的一般模式是
query.where(Expressions.path(myId.getClass(), student, myColumn).eq(myId));
或者数字
query.where(Expressions.numberPath(Long.class, student, myColumn).eq(myId));
QStudent
来自哪里?