问题标签 [jpa-criteria]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
20470 浏览

java - JPA CriteriaQuery 实现 Spring Data Pageable.getSort()

我使用 JPA CriteriaQuery 构建动态查询并传入 Spring Data Pageable 对象:

在后端,我的存储库中有一个方法来支持动态查询:

注意:我只放了一个参数用于演示目的。

但是返回的数据是未排序的,因此我想问的是在 CriteriaQuery 中实现 Pageable 的任何方法。

0 投票
1 回答
3085 浏览

hibernate - 如何在 JPA Criteria API 中正确应用连接提取

我在基于 Spring 数据 JPA 的应用程序中使用 JPA Criteria API。我的服务类使用静态方法来检索Specifications,然后可以将它们组合在一起以形成特定的查询。例如

在这里,我使用了两种返回 Specifications 的方法,并应用了适当的标准。这就是这两种方法的样子

这工作正常。我想添加一个

root.fetch(SomeEntity_.employee, JoinType.INNER);

这样一来,使用静态规范方法的任意组合构建的所有查询都使用FETCH JOIN.

如果我将此语句添加到两个静态方法中,则 INNER JOIN 会应用两次,这似乎不正确。理想情况下,我认为我应该有另一个只应用FETCH JOIN并返回规范的静态方法,但我似乎无法弄清楚如何在Predicate不使用任何criteriaBuilder方法的情况下返回 a。为了澄清,这就是我的方法应该是这样的:

任何帮助,将不胜感激。

0 投票
1 回答
98 浏览

java - EclipseLink 复合 PK 与 FK

我正在使用 eclipselink 2.5.1。

假设我有这两个类。

JAVA


Car 有一个复合主键(idManufacturor 和日期),idManufacturor 也是一个引用类 Manufacturor 的外键。

我的映射有问题。EclipseLink 将制造商对象理解为我的 Car 表中的一列。

错误

我知道如果我添加一个列制造商 FK,问题将得到解决,但它会重复。

如果我不够清楚,请随时要求任何精确度。

感谢您的帮助。

0 投票
1 回答
25199 浏览

java - 带有排序的 Spring JPA 规范

我正在使用 Spring JPA。

更准确地说,我使用的是一个扩展的存储库,JpaRepository因为JpaSpecificationExecutor我需要分页、过滤和排序。

现在我的分页和过滤都工作得很好,但我不能让排序也能正常工作。

我有些失望地注意到有一些JpaSpecificationExecutor方法findAll()

但我需要的一个:

不存在!

所以,计划 B,在规范中包括排序。

在此问题的已接受答案的帮助下:JpaSpecificationExecutor JOIN + ORDER BY in Specification我整理了以下内容:

wherespringFilterMap是一个实例字段,Map<String,String>其键是字段名称,值是过滤器值。

在上面你会看到我尝试按姓氏订购,但这似乎没有效果。

我究竟做错了什么; 以及如何实现分页和过滤的排序?

0 投票
0 回答
298 浏览

java - 编写子查询以比较 JPA Criteria 中的列表

我有以下实体结构:

我必须使用 spring-data-jpa 规范编写 SQL 代码的以下部分:

SELECT * FROM A WHERE ~~blahblahblah~~ AND **bId in (SELECT bs FROM C WHERE cId = myCId)**

我试着这样做:

但它不起作用。我的错误在哪里?

0 投票
1 回答
1401 浏览

hibernate - 不从休眠中的 Criteria Builder 查询调用 UserType api 方法

我有一个场景,我使用org.hibernate.usertype.UserType为休眠中的实体字段使用自定义用户类型。

这是日期转换为 UTC

我的实体类如下

当当前时间大于出生日期时,我有两个查询要从 Db 中检索人

1)jpql中的一个,实际上按预期调用了UserType#nullSafeSet

2)但是如果我通过标准构建器构建相同的查询,则永远不会调用 UTCTimestampType 类中的UserType#nullSafeSet实现,并且查询只会执行。

不知道为什么会这样

这是我对案例 (1) 的示例单元测试

但是我的条件查询没有通过我的自定义 UserType 类

我希望在执行查询之前将出生日期字段转换为 UTC 时区,这在 jpql 查询中有效,但在标准生成器中,从不调用自定义类型,并且查询以传递的时间执行。我的结束 sql 语句应该是 Ex:SELECT * FROM Person p where p.birthDtTm = date;

日期在 UTC 时区

0 投票
2 回答
2345 浏览

java - 如何将可变数量的参数传递给 Spring Data/Hibernate/JPQL 查询

我需要将可变数量的参数传递给 spring/JPA repo 来模仿这样的东西。

到目前为止,我还无法确定正确的方法是什么。我正在使用 Spring 4.3.7、Hibernate 5.2.9 和 Spring Data 1.11.1。我用谷歌搜索了一下,似乎没有办法用普通的 CRUD 回购来做到这一点,但到目前为止,我还没有找到任何看起来像我需要的例子。我认为CriteriaBuilder这是我应该使用的,但这似乎已经失宠,所以我不确定这样做的正确方法是什么。

0 投票
0 回答
677 浏览

java - 带有实体/对象的 JPA CriteriaBuilder 集合操作

我正在使用 JPA CriteriaBuilder api 生成查询,我有以下一组 bean:

  • 艺术家(包含艺术家数据,如姓名、性别、地址等)
  • 角色(包含艺术家扮演的角色,如角色 ID、角色类型、角色描述等)

艺术家可以扮演不同的角色,因此它是一对多的关系 b/w Artist & Role 实体。我想使用criteriabuilder编写一个查询来获取所有没有扮演“HERO”角色的艺术家:

我发现criteriabuilder api提供了处理集合的功能,例如:

但是,我在互联网上找到的这些函数的示例主要是使用字符串集合。正如本网站(http://www.objectdb.com/java/jpa/query/jpql/collection)上给出的那样,检查语言集合不包含法语:

如何使用与实体相同的函数“isNotMember”来获取所有不具有角色类型为 HERO 的角色的艺术家?

0 投票
1 回答
1625 浏览

java - JPA CriteriaBuilder 像双倍

我正在尝试从旧数据库中检索数据。

表中的列定义为包含帐号的 DECIMAL(13,0)。

无法更改列数据类型,因为它将对遗留系统产生重大影响。基本上所有使用该表的程序都需要更改然后重新编译,这不是一个选项。

我们有一个需求,就是要找到所有账号中包含值的记录,比如用户可以搜索 12345,所有账号中包含 12345 的账号都应该返回。

如果这是一个 CHAR/VARCHAR,我会使用:

作为定义为 DECIMAL(13,0) 的列的结果,accountNumber 属性是一个双精度值。

有没有办法在 DECIMAL/double 字段上执行类似的操作?

SQL将是

0 投票
1 回答
3028 浏览

java - Spring Data JPA crudrepository 保存方法是否有任何返回值?如果是这样,它会返回什么?

我怎么知道我的数据已成功插入到上面的代码中?