Я получаю следующую ошибку при наследовании этого метода:
Caused by: java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List com.vw.asa.repositories.base.BaseCmsRepository.getAllByDescFilter(java.lang.String,org.springframework.data.domain.Pageable)!
at org.springframework.data.jpa.repository.query.SimpleJpaQuery.validateQuery(SimpleJpaQuery.java:93)
at org.springframework.data.jpa.repository.query.SimpleJpaQuery.<init>(SimpleJpaQuery.java:63)
at org.springframework.data.jpa.repository.query.JpaQueryFactory.fromMethodWithQueryString(JpaQueryFactory.java:76)
at org.springframework.data.jpa.repository.query.JpaQueryFactory.fromQueryAnnotation(JpaQueryFactory.java:56)
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$DeclaredQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:140)
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:207)
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:78)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lookupQuery(RepositoryFactorySupport.java:574)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lambda$mapMethodsToQuery$1(RepositoryFactorySupport.java:567)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
Это класс-нарушитель с отмеченной строкой ошибки:
@NoRepositoryBean
public interface BaseCmsRepository<T, ID extends Serializable> extends BaseRepository<T, ID> {
@Query("SELECT a FROM #{#entityName} a WHERE a.parentId = :parent_id")
List<T> getAllChildrenOf(
@Param("parent_id") Integer parent_id
);
@Query("SELECT a FROM #{#entityName} a WHERE a.isActive = 1 AND a.name LIKE %:filter% ORDER by a.name ASC")
List<T> getAllByNameFilter(
@Param("filter") String filter,
Pageable pageable
);
// ** THIS IS THE OFFENDING LINE **
@Query("SELECT a FROM #{#entityName} a WHERE a.isActive = 1 AND a.desc LIKE %:filter% ORDER by a.name ASC")
List<T> getAllByDescFilter(
@Param("filter") String filter,
Pageable pageable
);
}
Не уверен, почему эта строка вызывает его , но другие нет. Может быть, я упускаю явную ошибку, и мне просто нужен второй набор глаз?