使用CiriteriaBuilder JPA创建联接查询

时间:2018-06-21 12:40:15

标签: hibernate jpa

我需要使用CriteriaBuilder创建以下查询

  SELECT Orders.OrderID, Customers.CustomerName
  FROM Orders
  INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

CriteriaBuilder代码:

  CriteriaBuilder builder = manager.getCriteriaBuilder();
    CriteriaQuery<Customers> criteriaQuery = builder.createQuery(Customers.class);
    Root<Customers> root = criteriaQuery.from(Customers.class);
    Join<Customers, Orders> emailTemplateMaster = root.join(Customers_.customerId, JoinType.INNER);

不需要知道剩余的代码如何关联表

我已经使用了Join功能。但是我的问题是如何获得带有订单的客户清单。

1 个答案:

答案 0 :(得分:0)

尝试此方法。

     CriteriaQuery<String> q = cb.createQuery(String.class);
     Root<Order> order = q.from(Order.class);
     q.select(order.get("shippingAddress").<String>get("state"));

     CriteriaQuery<Product> q2 = cb.createQuery(Product.class);
     q2.select(q2.from(Order.class)
                 .join("items")
                 .<Item,Product>join("product"));

链接:https://docs.oracle.com/javaee/6/api/javax/persistence/criteria/CriteriaQuery.html