hibernate基础工具findBySQL学习

本文介绍了Hibernate框架中用于执行自定义SQL查询的方法findBySQL,重点讨论了参数传递注意事项,特别是针对整型数组的处理。同时,文章来源于外部博客分享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public List<Map<String,Object>> findBySQL(String sql,Map<String,Object> param,int start,int max) {
        log.debug("finding List by hql");
        try {
       //最后返回map map的key可为别名和数据库字段 SQLQuery query
=sessionFactory.getCurrentSession().createSQLQuery(sql); query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); //遍历param插入参数 if(param!=null) { for (Map.Entry<String, Object> entry : param.entrySet()) { Object obj = entry.getValue(); //这里考虑传入的参数是什么类型,不同类型使用的方法不同 hibernate传入list的方法 if(obj instanceof Collection<?>){ query.setParameterList(entry.getKey(), (Collection<?>)obj); }else if(obj instanceof Object[]){ query.setParameterList(entry.getKey(), (Object[])obj); }else{ query.setParameter(entry.getKey(), obj); } } } query.setFirstResult(start);//起始页 if(max!=0){ query.setMaxResults(max);//每页几条 } List<Map<String,Object>> results = query.list(); log.debug("find list successful, result size: " + results.size()); return results; } catch (RuntimeException re) { log.error("find list failed", re); throw re; } }

注意 数组传入时是int 是没有属于

Object[] 或者
Collection<?>
数组传入需要为封装类

转载于:https://www.cnblogs.com/L-a-u-r-a/p/7050001.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值