例如,假设Customer实体具有一组订单.每个订单都有一组OrderItems.
我可以使用命名属性执行此操作:
EntityGraph<Customer> eg = em.createEntityGraph(Customer.class);
Subgraph<Order> egChild = eg.addSubgraph("orders");
egChild.addAttributeNodes("orderItems");
Run Code Online (Sandbox Code Playgroud)
如果我只对Orders感兴趣,我可以使用元模型执行此操作:
EntityGraph<Customer> eg = em.createEntityGraph(Customer.class);
eg.addSubgraph(Customer_.orders);
Run Code Online (Sandbox Code Playgroud)
但是,如果我只想使用元模型的整个图形,我不能这样做:
EntityGraph<Customer> eg = em.createEntityGraph(Customer.class);
Subgraph<Set<Order>> egChild = eg.addSubgraph(Customer_.orders);
egChild.addAttributeNodes(Order_.orderItems);
Run Code Online (Sandbox Code Playgroud)
问题似乎是这样的
eg.addSubgraph(Customer_.orders)
Run Code Online (Sandbox Code Playgroud)
返回一个
Subgraph<Set<Order>>
Run Code Online (Sandbox Code Playgroud)
而不是一个
Subgraph<Order>
Run Code Online (Sandbox Code Playgroud)
这是元模型/实体图的缺点,还是我遗漏了什么?