Expected positional parameter count: 1, actual p

rg.hibernate.QueryException: Expected positional parameter count: 2, actual parameters: [] [SELECT * from Ad where gr_id = ? and adst_id = ?]

这样的异常主要原因是:

//以下为例子

Query query =session.getNamedQuery("OnlienAd");
   query.setParameter(0,gray.getId());
   query.setParameter(1,Globals.UPED_STATE);

可以看到query.setParameter()设置了位,也可以理解成他在要执行的HQL语句中占了2个位置。

然后执行的时候会对应HQL里的?中去。

如果你并没有setParameter(),但你的HQL里却有?那么就会出这个异常。

 

 

转自https://blog.csdn.net/nettravel_a/article/details/9977809

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在你提供的引用中,你遇到了一个错误消息" Incorrect column count: expected 1, actual 42"。这个错误消息表示实际返回的列数与期望的列数不一致。根据你的描述,你使用的是jdbcTemplate的queryForList方法,它期望返回单列对象或者返回一个包含多个列的List<Map<String, Object>>对象。 根据你的代码和问题描述,我猜测你在使用queryForList方法时可能出现了以下问题: 1. 你的SQL查询语句返回了42列,而queryForList方法期望只返回1列。 2. 你可能没有正确地配置单列映射器(singleColumnRowMapper),导致报错。 要解决这个问题,你可以尝试以下几点: 1. 确认你的SQL查询语句是否正确,确保它只返回了1列。如果你的SQL查询语句返回了多列,你可以考虑使用query方法并结合BeanPropertyRowMapper来直接返回对象集合。 2. 确认你正确配置了单列映射器(singleColumnRowMapper)。你需要确保映射器的列数与实际返回的列数一致。 综上所述,你遇到的错误是由于实际返回的列数与期望的列数不一致所导致的。你可以通过检查SQL查询语句和正确配置单列映射器来解决这个问题。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [jdbcTemplate报错:Incorrect column count: expected 1, actual 2](https://blog.csdn.net/happy488127311/article/details/120591563)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [EurekaLog_7.5.0.0_Enterprise](https://download.csdn.net/download/jsdf007/9683759)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值