gpt4 book ai didi

QueryDSL - 如何在 where 中使用 StringPath

转载 作者:行者123 更新时间:2023-12-05 05:24:29 25 4
gpt4 key购买 nike

我从这样的字符串列创建了一个动态查询:

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 的类型更改为字符串的情况下进行比较?

错误信息:

SimpleExpression 类型中的方法 eq(String) 不适用于参数

最佳答案

您的案例的一般模式是

query.where(Expressions.path(myId.getClass(), student, myColumn).eq(myId));

或者数字

query.where(Expressions.numberPath(Long.class, student, myColumn).eq(myId));

QStudent从哪里来?

关于QueryDSL - 如何在 where 中使用 StringPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34399301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com