【问题标题】:Using Postgres with Play's Yabe Tutorial在 Play 的 Yabe 教程中使用 Postgres
【发布时间】:2012-03-14 13:40:52
【问题描述】:

我正在尝试将 Play 的 yabe 教程与 Postgres 连接起来。

当我尝试以特定用户身份登录以在 Yabe 应用中发布内容时,

我收到以下错误,

JPAQueryException 发生:从模型执行查询时出错。用户在哪里 email = ? AND密码=?:错误:列user0_.id不存在位置:8

我的用户模型类如下,

@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;
}

}`

我在连接方法的“return find("byEmailAndPassword", email, password).first();”中收到此错误行。

我使用以下查询在 Postgres 中创建了表,

创建表“用户”( 序列号, 电子邮件 varchar(255) 非空, 密码 varchar(255) NOT NULL, 全名 varchar(255) NOT NULL, isAdmin boolean NOT NULL, 主键(id) );

我是这个框架和 mvc 风格的新手,不知道错误是什么。谁能指导我应该做些什么来解决这个问题?

谢谢

【问题讨论】:

    标签: playframework


    【解决方案1】:

    这里有几件事...

    1. 您是否按照 YABE 教程中的说明扩展 Model 类?

    2. 为什么要自己创建表。 Play,通过 Hibernate 将为您创建数据库表。

    尝试删除数据库表并让 Play 为您创建它。如果这仍然失败,那么它通常可能是您正在使用的数据库的 Hibernate 方言的问题。确保您在 application.conf 文件中使用 Postgres 方言。

    【讨论】:

      【解决方案2】:

      我不确定自己创建表格是否聪明。问题是用户是一个受保护的词。如果您简单地为表选择一个不同的名称并让 hibernate 为您完成其余的工作,这会容易得多。 我选择

      @Entity(name="YabeUser")
      public class User extends Model {
      

      它对我来说很好用。

      【讨论】:

        【解决方案3】:

        尼尔斯作为答案。

        我将添加以下内容:不要在您的 DDL 中使用区分大小写的名称

        同样,不要在 DLL 中使用 BLANKS 总结一下,不要在两者之间封装对象的名称(表、列等)。

        我确实看到了由 Business Analyst 设计的数据库以及真正显式的所有表和列名称:带有空格的完整显式复合名称。我们必须有这样的查询:

        选择“用户身份”。“用户名”,“用户身份”。“用户 LASTNAME", "USER IDENTITY"."USER AGE" FROM "USER IDENTITY", "USER ROLE" WHERE "USER IDENTITY"."ROLE ID" = "USER ROLE"."ROLE ID" 和 "用户角色"."角色名称" = '管理员'

        这是一个真实的案例!并且不想再看到同样的事情。

        【讨论】:

          猜你喜欢
          • 2012-07-17
          • 1970-01-01
          • 1970-01-01
          • 2023-04-04
          • 1970-01-01
          • 1970-01-01
          • 2013-05-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多