How to implement data fetching logic in suspended function with Spring Webflux? #971
-
I am trying to implement a relation between two entities. I have a Query controller with a specific schema class, and a simple repository.
|
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
Hello 👋 @Component
class UserQueryController(private val userRepository: UserRepository) : Query {
suspend fun user(keycloakId: String): UserClassSchema {
return userRepository.findByKeycloakId(keycloakId)
.map { u ->
UserClassSchema(
id = u.id!!,
keycloakId = u.keycloakId,
email = u.email,
firstName = u.firstName,
lastName = u.lastName
)
}
.await()
}
}
@GraphQLName("User")
class UserClassSchema(
val id: String,
val keycloakId: String,
val email: String,
val firstName: String,
val lastName: String
) {
suspend fun companies(@GraphQLIgnore @Autowired repository: CompanyRepository): List<Company> {
return repository.retrieveCompany()
}
}
|
Beta Was this translation helpful? Give feedback.
-
Thanks guys, I got it working with your suggestions! |
Beta Was this translation helpful? Give feedback.
Hello 👋
There are number of ways this can implemented. If you are using latest
graphql-kotlin-spring-server
i.e. 4.x (currently alpha) release we default to use SpringDataFetcher that allows you to autowire Spring beans to method arguments.