我试图创建一个简单的查询,由于某种原因我尝试的所有组合,抛出以下异常
play - 无法调用该操作,最终出现错误:java.lang.RuntimeException:获取[models.User]类型[java.lang.String]上的uid引发错误。
我有用户模型和项目模型。 我想要一个查询来搜索属于用户X并且名称为Y的项目。
我试过的代码抛出了上面的异常:
Project uploadProject = Project.find.where().add(Expr.and(Expr.eq("owner", curUser.email),Expr.eq("name", projectName))).findUnique();
也尝试了
Project uploadProject2 = Project.find.where().eq("owner", curUser.email).eq("name", projectName).findUnique();
这样做的正确方法是什么,我在游戏文档中搜索过,但它只会引用简单的搜索,而不需要超过1个参数来搜索。
答案 0 :(得分:1)
该异常是由于比较了错误的字段类型。 owner字段属于User类型,我将其与用户电子邮件字符串进行比较。
在我的情况下
.eq("owner", curUser.email)
应该是:
.eq("owner.email", curUser.email)