我在使用hibernate downcasting query.uniqueResult()中處理問題。我有2個類: - UserBean - 用戶登錄問題downcasting冬眠的查詢
在第一個我有映射所有我的表字段以及處理數據的所有方法。相反,第二個僅表示將存儲在用戶會話中的一些用戶數據。
在我的登錄方法的某個點,我執行查詢,並得到1行(我已經檢查過,如果查詢真的返回一些結果)。關鍵是我不能從Object類型(即query.uniqueResult()類型)向UserLogin類型下降。
有人知道哪個可能是問題嗎?
非常感謝!
這是登錄方法:
public UserLogin login(String email, String password){
Session session = iniHibernate();
UserLogin userLogin = null;
try{
session.beginTransaction();
Query query = session.createQuery("select email, name from "
+ "UserBean u where u.email = :user_email and "
+ "u.password = :user_password");
query.setString("user_email", email);
query.setString("user_password",password);
userLogin = (UserLogin) query.uniqueResult();
session.getTransaction().commit();
}catch (Exception e){
System.out.println(e);
}
return userLogin;
}
非常感謝,穆罕默德。我實現了你的建議 (字符串[] = QueryResult中(的String [])query.uniqueResult();) 但我仍然得到以下錯誤(我不停的查詢只名稱和電子郵件字段): - INFO:java.lang.ClassCastException:[Ljava.lang.Object;不能轉換爲[Ljava.lang.String; – LucasM 2011-03-25 08:47:09
如果將其更改爲Object [],它的類型是什麼? – 2011-03-26 06:30:13
Mohamed在最後我將查詢更改爲UserBean對象(如您所建議的),然後我從UserBean數據創建了一個userLogin對象。非常感謝。 – LucasM 2011-03-27 14:35:36