Hibernate 整数字段上的QueryDsl JPA和-参数值与预期类型不匹配

Hibernate 整数字段上的QueryDsl JPA和-参数值与预期类型不匹配,hibernate,sum,querydsl,having-clause,Hibernate,Sum,Querydsl,Having Clause,使用QueryDsl/Hibernate(2.8.2)执行查询时遇到意外问题 我的字段是这样生成的,如您所见,它是一个整数 public final NumberPath nbPotatoes= createNumber("nbPotatoes", Integer.class); 我试图在我的请求中添加“having”条款,如下所示: res.having( (QGarden.garden.nbPotatoes.sum()).gt(0) ); 我在nbpotations字段上执行求和,并且

使用QueryDsl/Hibernate(2.8.2)执行查询时遇到意外问题

我的字段是这样生成的,如您所见,它是一个整数

public final NumberPath nbPotatoes= createNumber("nbPotatoes", Integer.class);
我试图在我的请求中添加“having”条款,如下所示:

 res.having( (QGarden.garden.nbPotatoes.sum()).gt(0) ); 
我在nbpotations字段上执行求和,并且只选择求和大于零的行

执行请求时,我得到以下异常:

Caused by: java.lang.IllegalArgumentException: Parameter value [0] did not match expected type [java.lang.Long]
    at org.hibernate.ejb.AbstractQueryImpl.validateParameterBinding(AbstractQueryImpl.java:375)
    at org.hibernate.ejb.AbstractQueryImpl.registerParameterBinding(AbstractQueryImpl.java:348)
    at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:375)
    at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:442)
    at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:72)
    at com.mysema.query.jpa.impl.JPAUtil.setConstants(JPAUtil.java:44)
    at com.mysema.query.jpa.impl.AbstractJPAQuery.createQuery(AbstractJPAQuery.java:135)
    at com.mysema.query.jpa.impl.AbstractJPAQuery.createQuery(AbstractJPAQuery.java:103)
    at com.mysema.query.jpa.impl.AbstractJPAQuery.list(AbstractJPAQuery.java:271)
因此,我尝试将参数强制转换为Long,但它不起作用,我得到了相同的异常。我找到的唯一方法是将字段的类型改为Long而不是Integer,但我对这个解决方案不太满意

你知道臭虫可能在哪里,或者我做错了什么吗

谢谢

编辑1: 不幸的是,它仍然不能与QueryDsl 3.2.0一起工作。我调试了部分代码,似乎Hibernate做错了什么。我的参数值显然是一个整数(我将该值更改为748以确保得到正确的参数)。但是在调用方法“getNamedParameterExpectedType”后,所确定的类型将被计算为Long?!然后,当Hibernate检查参数绑定时,它会引发一个匹配的异常,因为它需要一个长类型


没有人来解决这个问题?

你能试试Querydsl 3.2.0吗?我可以,但重新考虑我的项目需要一些时间。我会和你保持联系的,谢谢。请在这里创建一张票