Java 如何使用JPA中的criteria builder左连接一对多关系以获得子表的计数
这里订单有客户,我想得到客户表以及每条记录的订单数量。 如何在此处左键联接订单表?如果客户与订单有一对多关系Java 如何使用JPA中的criteria builder左连接一对多关系以获得子表的计数,java,mysql,hibernate,jpa,Java,Mysql,Hibernate,Jpa,这里订单有客户,我想得到客户表以及每条记录的订单数量。 如何在此处左键联接订单表?如果客户与订单有一对多关系 '* Class customer{ @Id @Column(name = "id") int id; @Column(name = "id") String name; @oneToMany List<Order> orders; } *' '* 类客户{ @身份证 @列(name=“id”) int-id; @列(name=“id”)
'*
Class customer{
@Id
@Column(name = "id")
int id;
@Column(name = "id")
String name;
@oneToMany
List<Order> orders;
}
*'
'*
类客户{
@身份证
@列(name=“id”)
int-id;
@列(name=“id”)
字符串名;
@独身癖
列出订单;
}
*'
"*
CriteriaBuilder cb=em.getCriteriaBuilder();
CriteriaQuery q=cb.createQuery(CustomerView.class);
Root=q.from(Customer.class);
q、 我想知道任何JPA文档都会对加入标准说些什么?请你重新表述你的问题。
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<CustomerView> q = cb.createQuery(CustomerView.class);
Root<Customer> root = q.from(Customer.class);
q.select((Selection<? extends CustomerView>)
Root<Order> orderRoot = q.from(Geofence.class) cb.tuple(root,cb.count(orderRoot.get("customer")).alias("orderCount")));
q.where(cb.equal(root.get("id"), orderRoot.get("customer")));
q.groupBy(root.get("id"));
TypedQuery<CustomerView> query = em.createQuery(q);
List<CustomerView> results = query.getResultList();