You're not alone.
Checkout QueryDSL https://www.baeldung.com/querydsl-with-jpa-tutorial. It allows you to specify more complex operations but can get real heavy real quick. If its more your style, use it. If not, let me know so I can edit this, giving a more detailed answer on how we can go about it.