加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java – Spring hibernate模板列表作为参数

发布时间:2020-12-15 01:25:55 所属栏目:大数据 来源:网络整理
导读:我正在尝试执行此查询: 码: this.getHibernateTemplate() find("select distinct ci.customer " + "from CustomerInvoice ci " + "where ci.id in (?) ",ids); 将id作为List,id的类型为Long 执行时我得到例外 码: java.lang.ClassCastException: java.uti

我正在尝试执行此查询:
码:

this.getHibernateTemplate()
      find("select distinct ci.customer " +
             "from CustomerInvoice ci " +
              "where ci.id in (?) ",ids);

将id作为List,id的类型为Long

执行时我得到例外

码:

java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Long
 at org.hibernate.type.LongType.set(LongType.java:42)
 at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136)
 at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:116)
 at org.hibernate.param.PositionalParameterSpecification.bind(PositionalParameterSpecification.java:39)
 at org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:491)
 at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1563)
 at org.hibernate.loader.Loader.doQuery(Loader.java:673)
 at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
 at org.hibernate.loader.Loader.doList(Loader.java:2220)
 at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
 at org.hibernate.loader.Loader.list(Loader.java:2099)
 at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
 at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
 at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
 at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
 at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
 at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:849)
 at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
 at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:840)
 at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:836)
 at
最佳答案
除了mR_fr0g的答案之外,这个还有效:

this.getHibernateTemplate() 
      findByNamedParam("select distinct ci.customer " + 
             "from CustomerInvoice ci " + 
              "where ci.id in (:ids) ","ids",ids); 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读