Playframework 在Play的Yabe教程中使用Postgres
我正在尝试将该剧的yabe教程与Postgres联系起来 当我尝试以特定用户身份登录,在Yabe应用程序中发布内容时 我得到以下错误: JPAQueryException发生:从模型执行查询时出错。用户where email=?密码=?:错误:列user0\uID不存在位置:8 我的用户模型类如下所示Playframework 在Play的Yabe教程中使用Postgres,playframework,Playframework,我正在尝试将该剧的yabe教程与Postgres联系起来 当我尝试以特定用户身份登录,在Yabe应用程序中发布内容时 我得到以下错误: JPAQueryException发生:从模型执行查询时出错。用户where email=?密码=?:错误:列user0\uID不存在位置:8 我的用户模型类如下所示 @Email @Required public String email; @Required public String password; public String fullname; p
@Email
@Required
public String email;
@Required
public String password;
public String fullname;
public boolean isAdmin;
public User(String email, String password, String fullname) {
this.email = email;
this.password = password;
this.fullname = fullname;
}
public static User connect(String email, String password) {
return find("byEmailAndPassword", email, password).first();
//return find("Select u from User u where u.email = ? and u.password = ?", email, password).first();
}
public String toString(){
return email;
}
}`
我在connect方法的返回findbyEmailAndPassword、email、password.first中得到这个错误;线路
我使用以下查询在Postgres中创建了表
创建表用户
id序列号,
电子邮件varchar255不为空,
密码varchar255不为空,
fullname varchar255不为空,
isAdmin布尔值不为空,
主键ID
;
我不熟悉这个框架和mvc风格,不知道错误是什么。有人能告诉我应该怎么做才能解决这个问题吗
谢谢这里的几件事
是否按照YABE教程中的规定扩展模型类
你为什么要自己创建表呢。播放时,通过Hibernate将为您创建数据库表
尝试删除数据库表并让Play为您创建它。如果这仍然失败,那么您正在使用的数据库的Hibernate方言通常会出现问题。确保您在application.conf文件中使用的是Postgres方言。我不确定自己创建表是否明智。问题是用户是一个受保护的字。如果您简单地为表选择一个不同的名称,让hibernate为您完成其余的工作,那么就容易多了。 我选择 这对我来说很好。答案是尼尔斯 我将添加以下内容:不要在DDL中使用区分大小写的名称 同样,不要在DLL中使用空格 总结一下,不要封装对象的名称、表、列等。。。中间 我见过一个由业务分析师设计的数据库,所有表和列的名称都是显式的:带空格的完全显式复合名称。我们必须有这样的疑问: 选择USER IDENTITY.USER FIRSTNAME、USER IDENTITY.USER LASTNAME,用户标识。用户标识中的用户年龄,用户 角色,其中USER IDENTITY.ROLE ID=用户角色。角色ID和 用户角色。角色名称='管理员' 这真是一个真实的案例!不想再看到同样的事情
@Entity(name="YabeUser")
public class User extends Model {