如何編寫DAO方法,該方法僅返回數據庫中的第一個條目。比如讓說,我期待在用戶表,我只想檢索第一個條目,我想聲明的方法,如:DAO方法檢索單個條目
public User getFirstUser(){
//method logic
}
編輯:
用戶有主鍵ID如果這很重要的話。
我很抱歉,如果這個問題太簡單/愚蠢/無論我與Java初學者,所以我嘗試新的東西。謝謝
我嘗試:
public User getFirstUser(){
try {
final String getQuery = "SELECT * FROM Users WHERE Id = (SELECT MIN(Id) FROM Users)";
final Query query = getSession().createQuery(getQuery);
final int rowCount = query.executeUpdate(); // check that the rowCount is 1
log.debug("get successful");
// return what??
} catch (RuntimeException re) {
log.error("get not successful", re);
throw re;
}
}
對不起,但我必須downvote這個答案:1. uniqueResult()將拋出一個異常,如果查詢返回多個結果(這很可能是從'用戶' )2.不要檢索所有用戶,如果只需要其中一個(如果表中有10個用戶呢?)3.不要使用不可移植的'LIMIT',使用'setMaxResults()'並讓Hibernate做好自己的工作。 – 2010-05-20 19:43:51
謝謝,更新。 (6小時會議對人們做壞事:)) – Bozho 2010-05-20 20:39:27
沒問題:) Downvote刪除。 – 2010-05-20 20:54:03