#java #mysql #spring-data-jpa
#java #mysql #spring-data-jpa
Вопрос:
Я здесь новичок, я уже целую ночь борюсь с этим запросом, кто-нибудь мне поможет?
вот соответствующий код: https://hasteb.in/esuhiluf.java
Когда я сделал чистый SQL-запрос в схеме, подобной этой https://hasteb.in/icopuxiq.sql это сработало, но когда я добавляю его в интерфейс и меняю имена переменных на заглавные буквы, я не могу заставить его работать, любая помощь была бы очень признательна: smile: вот код ошибки: Ошибка создания компонента с именем’productRepositories’: 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)!
Комментарии:
1. Пожалуйста, опубликуйте код в вопросе, чтобы он был там для потомков. Также потому, что мы вряд ли будем переходить по ссылкам, предоставленным неизвестными людьми на неизвестные сайты.
Ответ №1:
Во-первых: проверьте, подходит ли CrudRepository для того, что вы пытаетесь сделать. Я начал с CrudRepository и переключился на JpaRepository, который расширяет CrudRepository.
Второе: я предполагаю, что ваши атрибуты tableattributes взяты из правильных таблиц — ваш SQL-запрос не соответствует вашей строке @Query.
Последнее: попробуйте изменить свой способ получения идентификатора.
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);
}
Редактировать: ваш идентификатор действительно является целым числом? Проверьте свой продукт — он может быть «длинным»
Комментарии:
1. ProductID — это целое число, просто проверил дважды, попробовал ваше решение, и, к сожалению, я все еще получаю ошибку.