gpt4 book ai didi

playframework - 如何将 Ebean 子查询链接到主查询

转载 作者:行者123 更新时间:2023-12-04 03:08:50 25 4
gpt4 key购买 nike

我需要找到所有帐户上有一些钱并且很长时间没有登录的用户。这就是我所做的:

Query<UserSessionRecord> subQuery =
Ebean.createQuery(UserSessionRecord.class)
.where().gt("loginDateTime", DateTime.now().minusMonths(1))
.eq("user", "user") // <-- here I need to refer somehow to the main query
.query();
//my main query
List<User> users = User.FIND.where().eq("account.balance", 0)
.notExists(subQuery)
.orderBy("id").findList();

此代码不起作用,因为 UserSessionRecord 中的字段 user 是一个实体 User(不是 String)。如何在子查询中引用用户?

最佳答案

你可以给你的用户表一个 SQL 别名。然后您可以使用 raw() 方法检查相等性。

Query<UserSessionRecord> subQuery =
Ebean.createQuery(UserSessionRecord.class)
.where().gt("loginDateTime", DateTime.now().minusMonths(1))
.raw(mainuser.id=user.id)
.query();

List<User> users = User.FIND.query().alias("mainuser").where().eq("account.balance", 0)
.notExists(subQuery)
.orderBy("id").findList();

关于playframework - 如何将 Ebean 子查询链接到主查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46813536/

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