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:
Mark Paluch
2021-06-24 15:34:09 +02:00
committed by Rossen Stoyanchev
parent ab99dc2892
commit 2d53fdc73f
13 changed files with 1050 additions and 5 deletions

View File

@@ -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> {
}

View File

@@ -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()));
}
}