Spring Data repositories that support Querydsl
Spring Data repositories that support Querydsl are now supported as DataFetchers returning single objects and iterables including projection support. See gh-59
This commit is contained in:
committed by
Rossen Stoyanchev
parent
ab99dc2892
commit
2d53fdc73f
@@ -18,7 +18,20 @@ dependencies {
|
||||
testImplementation project(':spring-graphql-test')
|
||||
testImplementation 'org.springframework:spring-webflux'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
|
||||
implementation(
|
||||
"com.querydsl:querydsl-core:4.4.0",
|
||||
"com.querydsl:querydsl-jpa:4.4.0"
|
||||
)
|
||||
annotationProcessor "com.querydsl:querydsl-apt:4.4.0:jpa",
|
||||
"org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final",
|
||||
"javax.annotation:javax.annotation-api:1.3.2"
|
||||
}
|
||||
|
||||
compileJava {
|
||||
options.annotationProcessorPath = configurations.annotationProcessor
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package io.spring.sample.graphql.repository;
|
||||
|
||||
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
|
||||
public interface ArtifactRepositories extends CrudRepository<ArtifactRepository, String> {
|
||||
public interface ArtifactRepositories extends CrudRepository<ArtifactRepository, String>, QuerydslPredicateExecutor<ArtifactRepository> {
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package io.spring.sample.graphql.repository;
|
||||
|
||||
import graphql.schema.idl.RuntimeWiring;
|
||||
|
||||
import org.springframework.graphql.boot.RuntimeWiringCustomizer;
|
||||
import org.springframework.graphql.data.QuerydslDataFetcher;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@@ -16,8 +18,10 @@ public class ArtifactRepositoryDataWiring implements RuntimeWiringCustomizer {
|
||||
@Override
|
||||
public void customize(RuntimeWiring.Builder builder) {
|
||||
builder.type("Query",
|
||||
typeWiring -> typeWiring.dataFetcher("artifactRepositories", env -> this.repositories.findAll())
|
||||
.dataFetcher("artifactRepository", env -> this.repositories.findById(env.getArgument("id"))));
|
||||
typeWiring -> typeWiring.dataFetcher("artifactRepositories", QuerydslDataFetcher
|
||||
.builder(repositories).many())
|
||||
.dataFetcher("artifactRepository", QuerydslDataFetcher
|
||||
.builder(repositories).single()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user