hibernate怎么连表查询
时间: 2024-03-23 22:38:29 浏览: 15
在 Hibernate 中进行连表查询可以使用 HQL 或者 Criteria API 两种方式。
1. 使用 HQL 进行连表查询
HQL 是 Hibernate Query Language 的缩写,类似于 SQL,但是针对的是实体对象而不是表。下面是一个简单的 HQL 连表查询示例:
```
String hql = "from Order o left join fetch o.orderItems";
List<Order> orders = session.createQuery(hql, Order.class).getResultList();
```
上面的代码中,我们使用 HQL 查询 Order 实体对象,并通过 left join fetch 连接查询关联的 OrderItem 实体对象。
2. 使用 Criteria API 进行连表查询
Criteria API 是 Hibernate 提供的一种面向对象的查询方式,比 HQL 更加灵活。下面是一个 Criteria API 连表查询示例:
```
CriteriaBuilder cb = session.getCriteriaBuilder();
CriteriaQuery<Order> query = cb.createQuery(Order.class);
Root<Order> root = query.from(Order.class);
Join<Order, OrderItem> join = root.join("orderItems", JoinType.LEFT);
List<Order> orders = session.createQuery(query).getResultList();
```
上面的代码中,我们使用 Criteria API 查询 Order 实体对象,并通过 join 方法连接查询关联的 OrderItem 实体对象,使用 JoinType.LEFT 表示左外连接查询。