2015-03-03 33 views
0

我有一個User類到我的數據庫,並在我的java類:
用戶有什麼不對的Ebean要求

@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

+0

你嘗試用戶名而不是user.username? – sgpalit 2015-03-03 12:46:54

+0

我剛剛做到了。有效。爲什麼? – Mornor 2015-03-03 12:49:54

+1

find(User.class)這是它將搜索的表名。所以你不需要再提供表名。 – sgpalit 2015-03-03 12:52:53

回答

1

您的查詢不正確。它應該是:

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

這是因爲您的實體類User代表表USER。並且字段用戶名錶示列USERNAME。

在您的查詢中,SQL引擎正在查找USER表中的USER.USERNAME列,因此發生錯誤。將查詢更改爲上面將搜索USER表中的USERNAME列(它存在)。

+0

Thaks m8!今天學到了東西:) – Mornor 2015-03-03 13:42:52

+0

@Mornor無後顧之憂 – JamesB 2015-03-03 16:53:03