如何编写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