Skip to content

Repository query keyword IS_EMPTY not supported #4606

Open
@ssppooff

Description

@ssppooff

The documentation for repository query keywords (link) mentions support for the IsEmpty keyword, however, it fails with "Unsupported keyword" when used.

Steps to reproduce
0) spring initializr:

  • Maven & Kotlin on Java 17
  • Spring Boot 3.2.1
  • Dependencies: MongoDB Reactive
  1. Inside file with @SpringBootApplication, add the code below
  2. Start the app (no need for a running Mongo instance to get the exception)
interface CustomRepository : ReactiveMongoRepository<CustomData, String> {
	fun findByIdIsEmpty(id: String): Mono<Boolean>
}

data class CustomData(val id: String)

@Component
class Demo(val customRepository: CustomRepository) {
	@Bean
	fun accessRepo() {
		customRepository.findByIdIsEmpty("non-existent").block()
	}
}

Result
Error creating bean 'accessRepo', caused by org.springframework.beans.BeanInstantiationException: Failed to instantiate [void]: Factory method 'accessRepo' threw exception with message: Unsupported keyword

The exception is thrown inside org.springframework.data.mongodb.repository.query.from (line number 254), because the switch-statement above (line 168) has no case for IS_EMPTY, even though the keyword is defined in org.springframework.data.repository.query.parser.Type.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions