There is no paragraph in JPA saying that an implict join should ever use a subquery. That's just how you assume it will work. Hibernate predates JPA, and the standard was very much inspired by Hibernate. The current behavior has been like this for at least 15 years. If the JPA did "clearly" specify what you were claiming, they would add to the JPA TCK. But they didn't, hence Hibernate passes the JPA TCK just fine. Now, in the true spirit of open-source software development, since you really want to have this feature, I suggest you fork Hibernate and add support for this feature. When you are done, send us a Pull Request. We can then review it and, if it's nicely executed, there might be a good chance that it will be integrated. |