此标记用于与Java Persistence Criteria API(来自JPA 2.0)相关的问题,该API用于通过构造基于对象的查询定义对象来定义查询,而不是使用Java Persistence查询语言的基于字符串的方法。有关(N)Hibernate Criteria的问题,请使用[icriteria]标签。
where 子句中的子查询,带有 CriteriaQuery 以获得更大和等于运算符
我有以下 SQL 查询,我想为其编写 CriteriaQuery select * from EntityA ea where ea.lastUpdateTS >= (从 EntityB selectcreationDate where status='PUBLISHED' order by create...
如何使用 Blaze 持久性 CriteriaBuilder 实现 PostgreSQL 全文搜索?
我正在设计一个动态标准生成器,它接受过滤器参数(字段、运算符、值)并返回构造的 CriteriaBuilder 对象。我迭代参数并使用每个参数...
假设我有一个实体 @实体 公开课测试{ @ManyToMany @JoinTable(..等等..) 私人列表主题; // 与此测试相关的学校科目 .... 还有一个整体...
JpaSpecificationExecutor 规范中的 JOIN + ORDER BY
我有一个使用 JOIN 和 ORDER BY 的查询,并希望使用 Criteria Api 在我的存储库中使用它。 在这里我发现了如何将这样的查询包装到 CriteriaQuery (链接)中。 标准查询 我有一个使用 JOIN 和 ORDER BY 的查询,并希望使用 Criteria Api 在我的存储库中使用它。 在这里我发现了如何将这样的查询包装到 CriteriaQuery 中(链接)。 CriteriaQuery<Pet> cq = cb.createQuery(Pet.class); Root<Pet> pet = cq.from(Pet.class); Join<Pet, Owner> owner = cq.join(Pet_.owners); cq.select(pet); cq.orderBy(cb.asc(owner.get(Owner_.lastName),owner.get(Owner_.firstName))); 另一方面,我找到了一些与 JpaRepository 结合使用 Criteria Api 的示例(example)。 问题是存储库中的所有方法都需要规范: T findOne(Specification<T> spec); 总是这样构建: public static Specification<PerfTest> statusSetEqual(final Status... statuses) { return new Specification<PerfTest>() { @Override public Predicate toPredicate(Root<PerfTest> root, CriteriaQuery<?> query, CriteriaBuilder cb) { return cb.not(root.get("status").in((Object[]) statuses)); } }; } 因此,一方面我知道如何创建 CriteriaQuery,另一方面我需要一个从谓词构建的规范,但我不知道如何将 CriteriaQuery 解析为规范/谓词。 尝试这样的事情(我假设宠物有很多主人): public static Specification<Pet> ownerNameEqual(String ownerName) { return new Specification<Pet>() { @Override public Predicate toPredicate(Root<Pet> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) { Join<Pet, Owner> owners = root.join("owners"); criteriaQuery.orderBy(criteriaBuilder.desc(root.get("id"))); return criteriaBuilder.equal(owners.get("name"), ownerName); } }; } 这只是一个示例,用于搜索至少一个主人的名字等于ownerName的所有宠物 但是您可以在存储库中添加一个方法 List<Pet> findByOwnersNameOrderByIdDesc(String ownerName); (相当于规范)。 @belgoros:您仍然可以通过以下方式获取谓词实例 criteriaQuery.orderBy(yourOrderCriteria) .getRestriction();
使用 hibernate 和 jpa 过滤一个查询上的关联实体?
我有问题如何过滤关联实体,例如我有实体 A 公共A类{ 私人长ID; @OneToMany 私有列表 bList; } 实体B: 公共类 B { 私人 L...
我想做的是,计算符合键入条件的行数(我需要警告用户查找将花费一些时间 x rows *(一行的估计时间),我的代码如下所示: CriteriaBuilder qb ...
我正在尝试在使用 JPA 2.0 类型安全标准 API 编写的应用程序中使用子查询,并使用 Hibernate 3.6.1.Final 作为我的提供程序。我选择基本类型没有问题(Long、MyEn...
切换到 v3.1 后类似 CriteriaAPI 的谓词行为异常
我们最近切换到 jakarta.persistence-api-3.1.0,从那时起,测试失败了。我追溯到这一行: criteriaBuilder.like(file.get("name"), "%" + 文件名 + &...
我很难定义一个规范来根据模式列表测试字符串值。 @实体 @Table(名称=“词汇表”) @Schema(描述 = "术语表") 公开
如何将sql`partition by`转换为criteria API查询?
如何使用 criteria api 构建复杂查询?我尝试使用criteria api来实现注释中的sql,但是两天后问题并没有解决。我尝试过 chatgpt、google、spr...
我最近偶然发现了这种奇怪的行为,我无法完全解释。 如果我这样做 公共长getAllUsersCount(){ CriteriaBuilder cb =EntityManager.getCriteriaBuilder(); 标准查询<...
使用 fetch 时,JPA + Hibernate 计数查询分页失败
我有 3 个实体,我们称它们为 Parent、Child1 和 Child2。父级与其他两个具有 @OneToOne 关系: @OneToOne(mappedBy = "team", fetch = FetchType.LAZY, 可选 = false)
我已经在内部查询中为Distinct编写了JPA代码,下面是我的JPA代码 CriteriaBuilder cb =EntityManager_gbl.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(
如何正确确定“存在”JPA Criteria Query 子句返回 true 还是 false?
我不知道如何执行返回布尔输出的 JPA 标准查询。 目标是拥有一个在 Oracle 中执行时如下所示的条件查询: 从存在的对偶中选择 1...
如何使用 CriteriaBuilder 在 JPA 2 中使用合并或 case 语句 对于许多记录,initializedBy 将为空,因此这些记录的employeeName 将为空。我想展示
如何在 Java Criteria API JPA、Hibernate 中通过横向“,”编写连接
我想用 ',' 实现以下结果 从表1 t1, 横向 jsonb_array_elements(secret_data->' rating'->'subRating') AS subRatings 在哪里 我想用标准 API 来实现这一点。 我...
Spring boot jpa规范从父实体中过滤子实体的记录
我有两个实体 A 和 B,其中 A 是父实体,B 是子实体。我想使用 JPA 规范(如规范)来过滤记录。 他们的关系是实体 B 正在引用 A。我...
我有 4 个不同的表,在这些表上应用了连接,这在 SQL 查询中工作得很好 SELECT 捐赠者.标题, SUM(捐赠.捐赠金额) + SUM(捐赠.礼物_援助), SUM(捐款。