java hibernate 报错 参数值[1]与预期的类型[java.lang.String(n / a)]不匹配

下面是我Dao里面的查询

	@Query("select new com.example.demo.entity.CommonBuyingVO(c.comId,c.merchantIds,c.comName,c.comOutMoney,c.comNowMoney,c.comStock,"+ 
			"c.com_salesVolume,c.comType,c.comClass,c.comStatus,c.comimgPath," + 
			"c.comUrl,c.comSort,c.comValidData,c.comAddDate,c.comUpDate,c.comDepict," + 
			"s.scaBeginDate,s.scaEndDate) from CommonBuying c ,ScareBuying s where c.comId=s.proid and c.comType = ?1 and c.comStatus!=?2 and c.merchantIds=?3 ")
	List<CommonBuyingVO> getScareBuying(String comType,String comStatus,Integer merchantIds);

这里是我调用该接口

List<CommonBuyingVO> comm=commonBuyingDao.getScareBuying(StaticVariable.scareType, StaticVariable.isDel, merchant.getMid());

报错为:

java.lang.IllegalArgumentException: Parameter value [1] did not match expected type [java.lang.String (n/a)]
	at org.hibernate.jpa.spi.BaseQueryImpl.validateBinding(BaseQueryImpl.java:897) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.jpa.internal.QueryImpl.access$000(QueryImpl.java:61) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.jpa.internal.QueryImpl$ParameterRegistrationImpl.bindValue(QueryImpl.java:235) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.jpa.internal.QueryImpl$JpaPositionalParameterRegistrationImpl.bindValue(QueryImpl.java:371) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.jpa.spi.BaseQueryImpl.setParameter(BaseQueryImpl.java:692) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:181) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
	.............................................................
找到原因是因为参数传入错误,吧Dao里面的Integer merchantIds的数据类型改为String,因为实体类里面的变量类型为String类型.







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值