I'm using Spring CrudRepository
for database queries. How can I create a method signature (not writing SQL select statement myself) for a boolean property?
The following does not work:
class MyEntity {
private boolean active;
}
interface MyEntityRepository implements CrudRepository<MyEntity, Long> {
List<MyEntity> findActive(); //or also: findNotActive();
}
I would do:
interface MyEntityRepository implements CrudRepository<MyEntity, Long> {
List<MyEntity> findByActive(Boolean active);
}
Then the service layer would be
public class MyEntityServiceImpl implements MyEntityService{
public List<MyEntity> findActive() {
return myEntityRepository.findByActive(true);
}
}
UPDATE
As pointed out by @OliverGierke you could simplify your repository even more by doing:
interface MyEntityRepository implements CrudRepository<MyEntity, Long> {
List<MyEntity> findByActiveTrue(); //you could also use findByActiveFalse
}
For all the supported keywords you should see the section
Query creation
of the reference documentation
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With