Я хочу создать фильтруемый список моей сущности UserTask с помощью интерфейса QueryDslPredicateExecutor, чтобы параметры, указанные в строке запроса, автоматически обрабатывались в Predicate.
У меня есть следующие классы / интерфейсы
public interface UserTaskQuerydslRepository extends CrudRepository<UserTask, String>,
QueryDslPredicateExecutor<UserTask>, QuerydslBinderCustomizer<QUserTask> {
@Override
default void customize(QuerydslBindings bindings, QUserTask userTask) {
...
}
}
UserTask - это мой класс, который представляет модель (couchbase)
@QueryEntity
@Document(expiry = 0)
public class UserTask {
@Id
private String id;
...
}
Если я аннотирую этот класс с помощью @QueryEntity, тогда Maven сгенерирует для меня класс QUserTask
@Generated("com.mysema.query.codegen.EntitySerializer")
public class QUserTask extends EntityPathBase<UserTask> {
private static final long serialVersionUID = 493434469L;
public static final QUserTask userTask = new QUserTask("userTask");
public final StringPath id = createString("id");
...
public QUserTask(String variable) {
super(UserTask.class, forVariable(variable));
}
public QUserTask(Path<? extends UserTask> path) {
super(path.getType(), path.getMetadata());
}
public QUserTask(PathMetadata<?> metadata) {
super(UserTask.class, metadata);
}
}
Чтобы сгенерировать QUserTask, я добавил следующие строки в pom.xml
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/apt</outputDirectory>
<processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
<processor>com.mysema.query.apt.QuerydslAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>3.4.3</version>
</dependency>
</dependencies>
</plugin>
В проекте есть как объекты JPA, так и объекты couchbase, поэтому у меня есть JPAAnnotationProcessor.
Если я запускаю приложение, как это, я получаю следующую ошибку:
org.springframework.data.mapping.PropertyReferenceException: для типа UserTask не найдено ни одного свойства findAll!
Я попытался аннотировать свой UserTaskQuerydslRepository с помощью @NoRepositoryBean, он решил мою проблему с findAll, но когда я пытаюсь @Inject из этого репозитория в ресурс (или контроллер, JHipster называет его ресурсом), я получаю следующую ошибку
Не найдено подходящего bean-компонента типа [.UserTaskQuerydslRepository] для зависимости: ожидается как минимум 1 bean-компонент, который квалифицируется как кандидат autowire для этой зависимости. Аннотации зависимостей: {@ javax.inject.Inject ()}
Может ли кто-нибудь помочь мне, что я сделал не так?