有没有办法使用 JPA2 标准 API 执行如下查询?
select a from b where a in (1, 2, 3, 4)
有一种方法可以使用普通的 Hibernate 来做到这一点,但我们在 JPA2 中找不到类似的东西。
有没有办法使用 JPA2 标准 API 执行如下查询?
select a from b where a in (1, 2, 3, 4)
有一种方法可以使用普通的 Hibernate 来做到这一点,但我们在 JPA2 中找不到类似的东西。
是 JPA 2 Critera 支持从实体返回特定字段并使用包含子句的 wherein
子句。我在下面包含了一个示例,它采用 JPQL 并将其转换为类似的基于 JPA 2 Criteria 的选项。
JPQL:
select b.a from B b where a in (1, 2, 3, 4)
标准:
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
// assuming a is an Integer
// if returning multiple fields, look into using a Tuple
// or specifying the return type as an Object or Object[]
CriteriaQuery<Integer.class> query = criteriaBuilder.createQuery(Integer.class);
Root<B.class> from = query.from(Bean.class);
query.select(from.get("a"))
.where(from.get("a").in(1, 2, 3, 4));
// create query and execute...
...
以下是一些链接,它们提供了一些使用的附加示例in
:
希望这可以帮助!