I have a collection in MongoDB called 'customers' where I store documents with different schemas.
In my Spring Boot Application I have the following Repository:
public interface BgradeCustomerRepository extends MongoRepository<BgradeCustomer, String> {
public List<BgradeCustomer> findByScoreExists(boolean exists);
}
When I invoke findByScoreExists and pass true, it works fine and I get the collection of objects with property 'score', but the problem is when I pass false to findByScoreExists, I get the collection of 'BgradeCustomer' objects with only the common properties with the other schemas !!
I changed the method signature to be:
// Customer is the other schema in the collection
public List<Customer> findByScoreExists(boolean exists);
but that never worked, I always get 'java.lang.NullPointerException: null'
So, how can I get all the objects that doesn't have a specific property ?
wrap the object with java.util.Optional then use method isPresent() to check