gpt4 book ai didi

Ebean 在查询中使用 OR

转载 作者:行者123 更新时间:2023-12-04 01:26:56 26 4
gpt4 key购买 nike

我正在尝试进行查询,以检查用户的电子邮件或名称是否以给定的字符串开头。在 sql 查询中,我会使用

name like 'queryString%' or email like 'queryString%'

在 ebean 查询中,我希望编写如下内容:
find.where().or(like('name', 'queryString%'), like('email', 'queryString%'));

问题是 or 接受一个表达式,而不是一个表达式列表,这是我在写作时得到的
find.where().like(...,...)

据我了解,它执行这样的查询:
find.where().like(.., ...).like(..., ...)

正在使用 AND。

如何使用 ebean 编写这样的查询?

谢谢!

最佳答案

您的第二次尝试几乎没问题,您只需使用 com.avaje.ebean.Expr.like()or()

find.where().or(
com.avaje.ebean.Expr.like("email", email + "%"),
com.avaje.ebean.Expr.like("name", name + "%")
).findUnique();

当然,您可以使用导入来缩短代码:
import com.avaje.ebean.Expr;

...
find.where().or(Expr.like("email", email + "%"),Expr.like("name", name + "%")).findUnique();

检查 Javadoc 中的 API: http://www.avaje.org/static/javadoc/pub/com/avaje/ebean/Expr.html

关于Ebean 在查询中使用 OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12190675/

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