How To Join Unrelated Entities
JPA and Hibernate older than 5.1
JPA and Hibernate versions older than 5.1 require a defined
relationship to join two entities in a JPQL query. But you can
reference both entities in the FROM part of the query to
create a cartesian product and reduce it in the WHERE part.
em.createQuery(
"SELECT p.firstName, p.lastName, n.phoneNumber “ +
“FROM Person p, PhoneBookEntry n “ +
“WHERE p.firstName = n.firstName “+
“AND p.lastName = n.lastName”
);
Hibernate 5.1
Hibernate 5.1 introduced explicit joins on unrelated.
em.createQuery(
"SELECT p.firstName, p.lastName, n.phoneNumber “ +
“FROM Person p “ +
“JOIN PhoneBookEntry n “ +
“ON p.firstName = n.firstName “ +
“AND p.lastName = n.lastName"
);
www.thoughts-on-java.org