Hibernate 上如何实现这句sql语句:"SELECT * FROM food WHERE isdel = '0' ORDER BY (totalgrade/reviewsnum) DESC LIMIT 5;"
主要想问:它的Dao层应该如何写?
给你个例子
public List<Idcard> queryByName(int idcardCode) throws Exception {
List<Idcard> list = new ArrayList<Idcard>();
list = null;
try {
session = sessionFactory.getCurrentSession();
String hql = "from Idcard idcard where idcard.idcardCode=?";
Query q = session.createQuery(hql);
q.setParameter(0, idcardCode);
list = q.list();
} catch (Exception e) {
System.out.print("数据查询失败!");
e.printStackTrace();
}
return list;
}
没有limit啊?主要是limit不会!你这个我还不如DAO类直接继承HibernateDaoSupport。然后
String hql = "select count(*) from Food f where isdel = ? and f.categorySecond.category.cid = ? ";
List list = this.getHibernateTemplate().find(hql, 0, cid);
if(list != null && list.size() > 0){
return list.get(0).intValue();
}
return 0;
汗
public List<User> find(int page, String asc) throws Exception {
List<User> list = null;
try {
session = sessionFactory.getCurrentSession();
String hql = "from User u order by u.userid " + asc;
Query q = session.createQuery(hql);
q.setFirstResult((page - 1) * User.PAGE_SIZE);
q.setMaxResults(User.PAGE_SIZE);
list = q.list();
} catch (Exception e) {
System.out.print("分页查询失败!");
e.printStackTrace();
}
return list;
}