例如,考虑一个Customer实体有一组订单。每个订单都有一组OrderItems。
我可以使用命名属性执行此操作:
EntityGraph<Customer> eg = em.createEntityGraph(Customer.class);
Subgraph<Order> egChild = eg.addSubgraph("orders");
egChild.addAttributeNodes("orderItems");
如果我只对订单感兴趣,我可以使用元模型执行此操作:
EntityGraph<Customer> eg = em.createEntityGraph(Customer.class);
eg.addSubgraph(Customer_.orders);
但是,如果我只想使用元模型的整个图形,我不能这样做:
EntityGraph<Customer> eg = em.createEntityGraph(Customer.class);
Subgraph<Set<Order>> egChild = eg.addSubgraph(Customer_.orders);
egChild.addAttributeNodes(Order_.orderItems);
问题似乎是那个
eg.addSubgraph(Customer_.orders)
返回
Subgraph<Set<Order>>
而不是
Subgraph<Order>
这是元模型/实体图的缺点,还是我遗漏了什么?
答案 0 :(得分:2)
您可以使用重载方法:
Subgraph<Order> egChild = eg.addSubgraph(Customer_.orders.getName(), Order.class);