【问题标题】:What's wrong with this Ebean request这个 Ebean 请求有什么问题
【发布时间】:2015-03-03 12:44:20
【问题描述】:

我的数据库中有一个 User 类,在我的 java 类中:
User

@Entity
public class User extends Model{

    @Id
    @GeneratedValue
    public int id;  
    public String name; 
    public String username; 
    public String email; 
    public String password; 
    public String phoneNumber; 
    public Timestamp inscriptionDate;

    public static Finder<String,User> find = new Finder<String,User>(
                String.class, User.class
    ); 
}

我尝试使用此 Ebean 语句根据用户名检索唯一用户:

User current = Ebean.find(User.class).where().eq("user.username", username).findUnique(); 

但我收到此错误:

Query threw SQLException:Column "USER.USERNAME" not found;

为什么?

这是 Select 查询的结果。 (我删除了字段的值,但其中有一些值)。

【问题讨论】:

  • 您是否尝试使用用户名而不是 user.username?
  • 我刚做了。有效。为什么?
  • find(User.class) 这是要搜索的表名。所以你不需要再给表名了。

标签: java mysql playframework playframework-2.2 ebean


【解决方案1】:

您的查询不正确。应该是:

User current = Ebean.find(User.class).where().eq("username", username).findUnique();

这是因为你的实体类 User 代表了表 USER。字段用户名代表 USERNAME 列。

在您的查询中,SQL 引擎正在 USER 表中查找列 USER.USERNAME,因此出现了错误。将查询更改为上述将搜索 USER 表中的 USERNAME 列(确实存在)。

【讨论】:

  • 谢谢 m8!今天学到了一些东西:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-13
  • 2014-06-05
  • 2019-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多