我想用QueryDslPredicateExecutor接口创建UserTask实体的可筛选列表,因此查询字符串中给出的参数将自动处理为Predicate。SpringBoot Couchbase集成
我有以下类/接口
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);
}
}
要生成QUERTask我添加了follo翼线的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: No property findAll found for type UserTask!
我想我的注释与UserTaskQuerydslRepository @NoRepositoryBean,它解决了我的findAll问题,但是当我尝试这个仓库@Inject到资源(或控制器,JHipster称之为资源)我得到以下错误
No qualifying bean of type [.UserTaskQuerydslRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.inject.Inject()}
谁能帮我我做了什么错?
春数据Couchbase没有QueryDsl支持,因此库不能被实现为bean,所以Spring不能注入存储库bean。 – mp911de
理论上它有http://docs.spring.io/spring-data/couchbase/docs/current/reference/html/#core.extensions.querydsl – aBnormaLz
你的Spring配置是什么样的? 也许你有多个Spring上下文?您也可以通过查看日志来验证存储库bean是否已创建。 – Jeremy