在Hibernate 5.3+的CriteriaBuilder中,可以使用以下方式将"where <column> in (select <column> from <table>)"添加到查询条件中:
CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<EntityClass> query = builder.createQuery(EntityClass.class);
Root<EntityClass> root = query.from(EntityClass.class);
Subquery<ColumnType> subquery = query.subquery(ColumnType.class);
Root<TableClass> subqueryRoot = subquery.from(TableClass.class);
subquery.select(subqueryRoot.get("column"));
Predicate predicate = builder.in(root.get("column")).value(subquery);
query.where(predicate);
Query<EntityClass> hibernateQuery = session.createQuery(query);
List<EntityClass> result = hibernateQuery.getResultList();
这样,就可以将"where <column> in (select <column> from <table>)"添加到Hibernate 5.3+的CriteriaBuilder中进行查询。请注意,上述代码中的EntityClass和TableClass分别表示查询的实体类和子查询的实体类,ColumnType表示要返回的列的类型。根据具体的业务需求,需要替换为相应的实体类和列类型。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云