hibernate 通用查询

求教这个查询方法怎么做。... 求教这个查询方法怎么做。 展开
 我来答
落寞如尘012
推荐于2016-10-09 · TA获得超过194个赞
知道小有建树答主
回答量:68
采纳率:0%
帮助的人:70.9万
展开全部
/**
  * 获取分页实体数据 
  * @param entityClass 实体类
  * @param firstindex 开始索引
  * @param maxresult 需要获取的记录数
  * @param wherejpql 条件
  * @param queryParams 条件参数
  * @param orderby 排序条件 
  * @return QueryResult
  */
 public <T> QueryResult<T> getScrollData(Class<T> entityClass, int firstindex, int maxresult
   , String wherejpql, Object[] queryParams,LinkedHashMap<String, String> orderby) {
  Session session= HibernateSessionFactory.getSession();
  session.clear();
  QueryResult qr = new QueryResult<T>();  
  //拼jpql语句
  String entityname 知颂= getEntityName(entityClass);
  Query query = session.createQuery("from "+ entityname+ " o "+(wherejpql==null? "": "where "+ wherejpql)+ buildOrderby(orderby));
 搭蔽郑 setQueryParams(query, queryParams);
  //分页设置
  if(firstindex!=-1 && maxresult!=-1) query.setFirstResult(firstindex).setMaxResults(maxresult);
  //得到结果并销
  qr.setResultlist((List<T>)query.list());
  //log.info("调试"+qr.getResultlist().size());
  //获取总记录数
  query = session.createQuery("select count("+ getCountField(entityClass)+ ") from "+ entityname+ " o "+(wherejpql==null? "": "where "+ wherejpql));
  setQueryParams(query, queryParams);
  qr.setTotalrecord((Long)query.uniqueResult());
  HibernateSessionFactory.closeSession();
  return qr;
 }

这是我们公司的框架,改改就可以直接用了,你的参数没那么多

追问
看得眼花缭乱了。。你能帮我改一下吗。
追答
  // 根据带占位符参数HQL语句查询实体
 @SuppressWarnings("unchecked")
 protected List<T> find(String hql , Object... params)
 {
  // 创建查询
  Query query = getSessionFactory().getCurrentSession()
   .createQuery(hql);
  // 为包含占位符的HQL语句设置参数
  for(int i = 0 , len = params.length ; i < len ; i++)
  {
   query.setParameter(i + "" , params[i]);
  }
  return (List<T>)query.list();
 }
 
 -----------------
 /**
  * 根据用户名,密码查找用户
  * @param username 查询所需的用户名
  * @param pass 查询所需的密码
  * @return 指定用户名、密码对应的用户
  */
 public AuctionUser findUserByNameAndPass(String username , String pass)
 {
  // 执行HQL查询
  List<AuctionUser> ul = (List<AuctionUser>)find(
   "from AuctionUser au where au.username=?0 and au.userpass=?1 " ,
   username , pass);
  // 返回查询得到的第一个AuctionUser对象
  if (ul.size() == 1)
  {
   return (AuctionUser)ul.get(0);
  }
  return null;
 }
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
百度网友68a8208
2014-09-03
知道答主
回答量:7
采纳率:0%
帮助的人:3万
展开全部
方法传入一个String类型的hql语句,和一个String数组类型档拆的param,param是hql语句中传递的参数
查询时需要哪数的条件既李蠢首是param中的值
追问
public List query(String by, String AscDes) throws Exception {
String hql = "from Resource order by " + by + " " + AscDes;
要是这样我知道传值,可是传一条hql语句 ,就犯迷糊了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_汪锐
2014-09-03 · TA获得超过358个赞
知道小有建树答主
回答量:513
采纳率:0%
帮助的人:262万
展开全部
你这个查询方法 那个param数组 有什么用吗????
追问
传参数的吧,我也不太明白,别人开发的,我试着做一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式