Yeah that can get ugly but it’s still better than writing native queries because you know it’s gonna automatically translate to any db specific sql flavour.
When they get a bit too long and ugly I either write default methods using specifications or I create a more concisely named default method that wraps the verbose monster.
you forgot about AbstractSimpleShitLotsGoodLibrariesButWeDecidedToMakeOurOwn and AbstractSimpleShitLotsGoodLibrariesButWeDecidedToMakeOurOwnAbstractFactory
deleted by creator
Don’t forget the repository methods! getAllByTenantAndActiveAndCreatedAfterAndFirstNameContainsOrderByLastName
deleted by creator
Yeah that can get ugly but it’s still better than writing native queries because you know it’s gonna automatically translate to any db specific sql flavour.
When they get a bit too long and ugly I either write default methods using specifications or I create a more concisely named default method that wraps the verbose monster.
Or you could rename your fields to single characters! getAllByAAndBOrderByC
Now I feel dirty…
Stop it!
But the stakeholders said they needed two new filter criteria!
you forgot about AbstractSimpleShitLotsGoodLibrariesButWeDecidedToMakeOurOwn and AbstractSimpleShitLotsGoodLibrariesButWeDecidedToMakeOurOwnAbstractFactory
No
FactoryFatoryFactory
? I’m disappointed. (Typo is intentional)