Hibernate 转换含按规定字段相除后排列及含limit的SQL语句问题,它的dao如何写?

Hibernate 上如何实现这句sql语句:"SELECT * FROM food WHERE isdel = '0' ORDER BY (totalgrade/reviewsnum) DESC LIMIT 5;"

主要想问:它的Dao层应该如何写?

3个回答

给你个例子

 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;
    }
u013721523
冰上行舟 没有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;
接近 3 年之前 回复

没有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;
    }
zzhao114
zzhao_曌 分页查询 这个就是至于你写的那个 事物自己弄弄
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问