这个Ebean请求有什么问题

时间:2015-03-03 12:44:20

标签: java mysql playframework playframework-2.2 ebean

我的数据库中有一个User类,我的java类中有一个:{ 用户

@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 * from user

1 个答案:

答案 0 :(得分:1)

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

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

这是因为您的实体类User表示USER表。字段用户名表示USERNAME列。

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