Unfortunately no.
What I ended up doing is creating an @Entity for each of those 4 tables and annotated them with @Immutable.
So for example:
Then I created a Predicate class to hold a bunch of Query DSL predicates (many of them returning BooleanExpressions's). That way they could be reused. This code has been obfiscated but here is an example
Now I just used it in a repository, passing in the predicate that I had built up.
I am sure given time (which I did not have) something more elegant could have been done, but it did what I needed at the time. Of course that query would not necessarily be efficient for your use case, but you get the general idea. So short story long you have to do it yourself