用ssh框架开发时如何实现在数据库中根据时间排序查出前10条的记录
功能实现要求如题,我所有的dao实现类都继承自HibernateDaoSupport,事务声明统一的由spring控制,如何在dao实现类不再用super.getHibe...
功能实现要求如题,我所有的dao实现类都继承自HibernateDaoSupport,事务声明统一的由spring控制,如何在dao实现类不再用super.getHibernateTemplate().getSessionFactory().openSession(),然后构造query对象就可以查出根据时间排序的前十条记录,
hql语句该如何写,如何设置setFristResult和setMaxResults,谢谢各位前辈多多指教
这是示例1:后来我用hql解决不了,用了sql本地查询,但是这样就违反了我用ssh框架的初衷了,请问该如何解决呢
public List getStockBySign(String sign){
String sql="select top 10 serialNum,[name], count(serialNum) from stock where id in(select top 70 id from stock order by date desc) and sign=? group by serialNum,[name] ";
Session session=super.getHibernateTemplate().getSessionFactory().openSession
Query query=session.createSQLQuery(sql);
query.setString(0, sign);
list=query.list();
}
这是示例2:
String sql="select top 5 goods from Goods goods";//这是sql语句
HibernateTemplate template=super.getHibernateTemplate();
然后我想把上面这sql语句构造成hql语句,如果只是用hibernate创建query对象的话,
我可以实现这个功能,可是我添加了spring支持,这个类我是继承HibernateDaoSupport,直接获得HibernateTemplate对象,然后想用spring查询的find方法获取到结果,可是这个hibernateTemplate对象里面只有setMaxResults方法,没有setFirstResult方法...... 展开
hql语句该如何写,如何设置setFristResult和setMaxResults,谢谢各位前辈多多指教
这是示例1:后来我用hql解决不了,用了sql本地查询,但是这样就违反了我用ssh框架的初衷了,请问该如何解决呢
public List getStockBySign(String sign){
String sql="select top 10 serialNum,[name], count(serialNum) from stock where id in(select top 70 id from stock order by date desc) and sign=? group by serialNum,[name] ";
Session session=super.getHibernateTemplate().getSessionFactory().openSession
Query query=session.createSQLQuery(sql);
query.setString(0, sign);
list=query.list();
}
这是示例2:
String sql="select top 5 goods from Goods goods";//这是sql语句
HibernateTemplate template=super.getHibernateTemplate();
然后我想把上面这sql语句构造成hql语句,如果只是用hibernate创建query对象的话,
我可以实现这个功能,可是我添加了spring支持,这个类我是继承HibernateDaoSupport,直接获得HibernateTemplate对象,然后想用spring查询的find方法获取到结果,可是这个hibernateTemplate对象里面只有setMaxResults方法,没有setFirstResult方法...... 展开
1个回答
展开全部
那你的表中的某个字段要有时间标志,对于sql的排序用到order by 字段名..,[asc,desc]。asc是升序如果不写他就是默认,desc表示降序,你只要按照数据库中时间字段排序即可。
hql也提供了相应的排序方法query有一个方法addOrder(Order order),Order类有详细设置某个字段排序的方式,如Order.desc("update"),表示对update属性进行降序排列。query对应的sql语句如“from xxClass ”,然后query.add(Order order)。
setFristResult(1),setMaxResults(10)
hql也提供了相应的排序方法query有一个方法addOrder(Order order),Order类有详细设置某个字段排序的方式,如Order.desc("update"),表示对update属性进行降序排列。query对应的sql语句如“from xxClass ”,然后query.add(Order order)。
setFristResult(1),setMaxResults(10)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询