java - 无法使用 jpa 和粗存储库使我的 sql 查询正常工作,但可以正常工作
问题描述
我是新来的,我一直在为这个问题苦苦挣扎一个晚上,有人能帮我吗?
这是相关代码:https ://hasteb.in/esuhiluf.java
当我在像这样 https://hasteb.in/icopuxiq.sql这样的方案中进行纯 SQL 查询时, 它可以工作,但是当我将它添加到界面并将 var 名称更改为大写时,我无法让它工作,任何帮助将不胜感激:微笑:这是错误代码:创建名称为“productRepositories”的bean时出错:FactoryBean在创建对象时抛出异常;嵌套异常是
java.lang.IllegalArgumentException: Validation failed for the query for method public abstract java.util.List dev.rannem.storesql.repositories.ProductRepositories.getItemList(java.lang.Integer)!
解决方案
首先:检查 CRUDRepository 是否最适合您尝试做的事情。我从 CRUDRepository 开始,然后切换到 JPARepository,它扩展了 CRUDRepository。
第二:我假设您的 tableattributes 来自正确的表 - 您的 SQL-Query 与您的 @Query-String 不匹配。
最后:尝试改变获取 id 的方式。
public interface ProductRepositories extends JPARepository<Product, Integer> {
@Query("select CartItem.product from Cart c join CartItem ci on ci.id = c.cartID join Cart.cartItems cci on c.cartID = cci.product.id where User.id = :id")
List<Product> getItemList(Integer id);
}
编辑:您的 id 真的是整数吗?检查您的产品 - 它可能很“长”
推荐阅读
- node.js - 从 S3 读取 ZIP 存档,并将未压缩版本写入新存储桶
- vue.js - 如何从 vue 中的特定 getter 中检索数据?
- python - 带有字典默认值的 typing.NamedTuple
- node.js - 部署“react-admin”应用程序时,Heroku 服务器因“JavaScript 堆内存不足”而崩溃
- c# - 将 C# 对象转换为 IOpenApiAny
- jsf - “主题”必须以 ';' 结尾 分隔符
- iot - 为什么 MQTT 和 CoAP 的有效载荷大小不同?
- flutter - Flutter StatefulWidget 导致多个 HTTP 重新请求
- java - 使用 simpledateformat 解析 6 位毫秒的字符串日期
- client-server - 我如何知道一个库是服务器端库还是客户端库?