Root<Customer> c = q.from(Customer.class);
SetJoin<Customer, Order> o = c.join(customer_.getSet("orders",
Order.class));
ListJoin<Order, LineItem> i = o.join(order_.getList("lineItems",
LineItem.class));
q.select(c.get(Customer_.name)).where(
cb.equal(i.get(lineItem_.getSingularAttribute("product", Product.class))
.get(product_.getSingularAttribute("productType", String.class)),
"printer"));
assertEquivalence(q, jpql);