问题标签 [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.
java - 使用不带字段映射的隐藏列对 @OneToMany 关系进行 JPA2 条件查询
我有一个Instrument
包含这些字段的实体:
InstrumentSymbol
现在在数据库中有一个名为symbold_instrumentId
Hibernate 自动创建的列,但没有与之关联的属性。我怎样才能找到所有InstrumentSymbol
where statusCode
is 1
?
我试过了
但这失败了
然后我尝试将自定义字段添加到我的@StaticMetamodel
:
但不幸的是,Hibernate 忽略了它:
如何创建有效的查询?
作为参考,这是以下的静态元数据InstrumentSymbol
:
(没有 FK 的列Instrument
)。这是自动生成的 DDL:
java - JPA Criteria - join OneToMany relationship
I have a list of entities ActivityType
in my Convention
entity, in ActivityType
entity i have a list of string specialties
, in the query i want to pass an array of string to get all Convention
entities which their specialties exists in the array, so i used the predicate isMember
, but i get this error
unknown collection expression type [org.hibernate.query.criteria.internal.path.SetAttributeJoin]
stack trace
java - 在 Hibernate / JPA 中返回具有完整连接的 ResultSet
我有 2 个实体:EntityA 和 EntityB。它们与一对多关系相关。
我有一个查询,将 EntityA 与 LEFT JOIN 连接到实体 B。还有一个“ON”子句。在正常的 SQL 术语中,这将是:
因此,我从加入的结果集中获得了急需的信息。我只希望记录与某些属性匹配时加入。如果 EntityB 与连接子句匹配,我需要 EntityA、allways 和附加的 EntityB。
该项目使用 Hibernate / JPA 设置。我不知道如何检索所需的信息。此刻我有:
所以我在这里.. 卡在我的 EntityAs 列表中。每当我在 EntityA 上调用 getEntityBs() 时,我都会得到所有这些.. 这是有道理的.. 但是我怎样才能检索加入的集合?
我坚持使用 JPA 和 Hibernate,因为这个选择不是我做出的。
提前致谢!
jpa - 如何在 JPA Criteria Query 中使用 criteriaBuilder.construct 构建嵌套对象
我想用这个人作为电话 DTO 对象来查询电话列表,但是当我构造一个 DTO 对象时,它提供了一个错误。
条件查询:
这个怎么做??
criteriaQuery.select(builder.construct(PhoneDTO.class, id, number, type, builder.construct(PersonMediumDTO.class, personId, name, nickName, address, createdAt, version)));
如何构造嵌套对象?
java - JPA Criteria API“IN”谓词不起作用
我需要使用 JPA Criteria API 编写以下内容:
我的代码是:
运行时错误是
看起来某处有双输入。代码中没有语法错误。
我不能cb.in(List<String>)
直接做,这是错误的语法。我必须in.value()
按照此线程中的说明进行操作。
java - 在自定义存储库中使用 SpringBoot 和 JPA Criteria Query 查询时间戳
如何使用 JPA Criteria Query 根据自定义 JPA 存储库中的时间戳进行查询?
我有一个startTime
,endTime
我想用它来查询time
它们之间的字段,但我需要在自定义存储库中执行此操作,因为我需要使用许多其他字段来构建复杂的查询。
我可以成功构建一个复杂的查询并获得正确的结果,除非我尝试使用startTime
and进行查询endTime
。我一直在尝试做类似以下的事情,但没有运气
wheredata.getStartTime()
和data.getEndTime()
are 的类型java.sql.Timestamp
。
这个想法是在和time
之间的字段中获取所有带有时间戳的条目。startTime
endTime
关于如何做到这一点的任何想法?
谢谢。
jpa - JPA 标准:在所有列的完整结果之前获取总计数;重用 Where 子句
在JPA 标准中,我有一个有效的复杂查询。它涉及许多连接和一个复杂的 Where 子句。但就在我运行它以进行完整选择之前,我需要快速COUNT
了解完整的结果集。
我试图重用我的where
子句和我的所有联接,并从我的顶部元素中选择nvRoot
,使用cb.count
. 但我得到了错误Caused by: java.lang.IllegalStateException: No criteria query roots were specified
。
根据下面的评论,我尝试添加cqCount.from(Nv.class)
代码,但这给了我:
Invalid path: 'generatedAlias2.id'
spring-boot - JPA CriteriaSepcification IN 子句
我正在使用SpringBoot 2.2.6
withJPA
并且我需要使用IN
标题中提到的子句进行查询。我尝试过:
wherecriteria.getValue()
是一个Integer[]
数组,但它不起作用。你能帮助我吗?
谢谢你们。
更新
如果我尝试同样Query
的方法,List<String>
它会起作用!使用整数我有这个错误:
java - 嵌套异常是 java.lang.ClassCastException: java.lang.String cannot be cast
我是 spring-data 的新手,我有这个错误java.lang.String cannot be cast to com.example.accessingdatamysql.User
,不知道如何解决它!我添加了我的代码的各个相关部分。
该方法应按名称输出最旧的条目(通过时间戳)。
Main.Controller
User.java
RepoImpl.java
错误
java - 多对多关系中 MAX id GROUP BY FOREIGN KEY 的 JPA 标准
我正在使用Spring Boot
and开发一个应用程序Spring Data JPA
。
以下是相关实体:
在我的服务中,我有一个方法,CertificationService.findAll()
. 这个想法是检索certification
最新certification_status
基于MAX(id)
和GROUP BY certification_id
的记录WHERE certification_status_type_id = ?
。此方法有五 (5) 个参数:
该组合可以是零 (0) 到五 (5)。因此,我选择应用 JPA Criteria。到目前为止,我已经编写了以下代码:
我对certificationTypeId
、dateFrom
、dateTo
和client
的标准有效。对于certificationStatusTypeId
,我想根据以下 SQL 语句创建条件:
该语句在数据库中有效。不确定这是否是基于 和 选择记录的最佳MAX(id)
查询GROUP BY certification_id
组合WHERE certification_status_type_id = ?
。
感谢任何帮助。谢谢你。
**更新
现在这是我的代码:
但它会引发以下错误:
查看生成的 JPQL,它似乎与我的 SQL 语句相似。我只是不明白为什么会这样Invalid path
。
**更新我的道歉!我的 SQL 语句实际上类似于以下内容:
更新
这解决了。感谢您Thorben Janssen
耐心地调查我的问题。
这是我的代码的最后一部分: