An example in JPA spec:
CriteriaQuery<Customer> q = cb.createQuery(Customer.class); Root<Customer> customer = q.from(Customer.class); Join<Customer, Order> order = customer.join(Customer_.orders); q.where(cb.equal(cb.treat(order.get(Order_.product), Book.class) .get(Book_.name), "Iliad")); q.select(customer);
order.product is a path in the where clause. If it is not join, how to access
the name attribute of the product(Book)? Is it actually a table join when translated to SQL? If this is the case, what is the difference between path
and join in this example?
Order Product ---------- ------------- productId id name