以下是我的Java应用程序中的一个函数:
public List<History> test(Double amount) {
String q = "SELECT h FROM History h WHERE (h.amount/POW(10,h.amountPrecision)) = :amount";
Query query = em.createQuery(q);
query.setParameter("amount", amount);
return query.getResultList();
}
例如,在我的数据库中,我有amount=2000
和amountPrecision=2
。因为我可以在我的查询中使用十进制运算,所以我的参数是一个双精度
,我在应用程序中输入20.00。
Parameter value [20.0] did not match expected type [java.lang.Long]
在我的数据对象中,amount
是一个Long
,amountPrecision
是一个整数。有什么想法吗?谢谢;)
在您的方法测试(Double amount)中,amount的数据类型为Double,但左侧的WHERE子句中的数据类型为long,右侧的数据类型也必须为me long。
可能您必须将方法测试签名更改为:
public List<History> test(Long amount)
它打印出值的等效,这是因为这一行: 通过调用表示。 那么,如何使Hibernate相信是的实例? 我的枚举是由加载的。而由URLClassLoader加载,由另一个类加载器加载。
当我想跑的时候: 我得到: 执行操作“MappingAddAction”的服务异常,java.lang.IllegalArgumentException:参数值[5118]与预期的类型[com.vernuso.trust.server.domain.ClientImport.MappingInfo(N/A)]不匹配 有人能帮助我理解为什么它需要类型而不是类型吗? 我有两个表,如下图所示。Mappi
我做错了什么? 正在更新: 我发现了问题所在。问题与ActionRepository中找到的函数有关。函数的签名首先要求两个日期进行比较,然后id和我给出了相反的值。我很清楚,在我上了它之后,我会有一个问题的日期,所以答案确实帮助了我。谢谢大家!
我得到的错误. 我对此感到困惑,因为它来自下面显示的被注释掉的服务方法。当我把它注释掉时,错误就避免了。列是一个,即或。 实体: 我的存储库: 我的服务: 当我取消注释时
这是我运行程序时收到的错误: 注:[19533]是我使用的一个测试值。 这是在CustomerServiceBeanImpl.java中出现错误的方法: 在快速检查ERD时,“Customer”表中的“id”列的数据类型为bigint。然而,我不确定这是否重要。(顺便提一下PostgreSQL数据库。) 如何修复此错误?
问题内容: 我收到以下错误 java.lang.IllegalArgumentException: Parameter value [2] did not match expected type [com.cityBike.app.model.User (n/a)] at org.hibernate.jpa.spi.BaseQueryImpl.validateBinding(BaseQueryIm