Hibernate异常之org.hibernate.QueryParameterException: Position beyond number of declared ordinal .....

本文主要分析了Hibernate中遇到的`org.hibernate.QueryParameterException`,该异常通常发生在位置参数超过声明的参数数量时。文章通过具体的代码示例展示了问题所在,指出在使用命名参数占位符时,错误地使用了位置参数进行赋值。解决方案是使用参数名进行赋值,而非索引。最后,作者鼓励读者分享更多相关问题和解决方案。

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

1、异常描述

org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. 
Remember that ordinal parameters are 1-based! Position: 1

备注:

      此处hibernate版本号3.6.10.Final

2、部分示例代码

2-1 StudentDao.java

   // 测试动态查询
	public List<Student> findByCondition(Object[] conditions){
		Session session = sessionFactory.getCurrentSession();
	    Transaction transaction = session.beginTransaction();
	    // 定义hql语句
	    String hql = "from Student where name = :name and cid = :cid";
	    Query query = session.createQuery(hql);
	    // 判断查询条件是否为空
	    if(conditions != null  &&  conditions.length != 0){
	    	// 给占位符赋值
	    	System.out.println("conditions.length = "+conditions.length);
	    	for (int i &
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值