问题标签 [jpql]

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 投票
1 回答
80905 浏览

java - 如何进行 JPQL 子查询?

是否可以在 JPQL 中执行与此 sql 查询等效的操作?

0 投票
2 回答
289 浏览

sql - How to Assign a JPQL query to a simple Java object?

I need to assign the result of a jpql result to a simple class java object

I have something like this

I need to somehow to store the result of this SQL query, example

// could be anytable SELECT DISTINCT c.table_id, c.name, NULL AS description FROM anyTable

How do I do this in JPQL and then assign the result to my object?

0 投票
4 回答
25552 浏览

java - 递归 JPA 查询?

JPA 2 是否有运行递归查询的机制?

这是我的情况:我有一个实体 E,它包含一个整数字段 x。它也可能有 E 类型的子代,通过 @OneToMany 映射。我想做的是通过主键找到一个 E,并获取它的 x 值,以及它所有后代的 x 值。有没有办法在一个查询中做到这一点?

我使用的是 Hibernate 3.5.3,但我不希望对 Hibernate API 有任何显式依赖。


编辑:根据这个项目,Hibernate 没有这个功能,或者至少在 3 月份没有。所以 JPA 似乎不太可能拥有它,但我想确定一下。

0 投票
2 回答
2533 浏览

java - JPQL MySQLSyntaxErrorException:您的 SQL 语法有错误

我有两个实体用户和组:

它是多对多单向的。它生成表格useruser_group. 现在我有一个简单的查询:

抛出异常:

0 投票
1 回答
3773 浏览

java - 通过避免加入查找表来优化 JPA 查询?

想象一个表emp

和一个表部门

emp.dept_codedept.code作为 ForeignKey 的引用。

这些表映射到 JPA 实体,ForeignKey 被建模为关联:

给定以下数据:

我想编写一个 JPA 查询,返回支持部门的所有员工。假设我知道支持部门的 PrimaryKey ( SUPT)

我想那将是:

问题:

由于emp表中提供了 Department 键SUPT代码,有没有办法通过避免JOIN 到 Department Entity来重写 JPA 查询?

这会导致性能提升吗?或者 JPA 实现(如 Hibernate)是否足够聪明,可以避免数据库连接到dept表?

0 投票
2 回答
1250 浏览

sql - 复杂的 JPQL 字符串查询

我正在尝试对数据库中的字符串字段执行非常复杂的查询。我在 JPQL 不是很有经验,所以我想我会尝试获得一些帮助。

我在数据库中有一个名为FILE_PATH. 在该FILE_PATH字段中,将有以下值:

  • 'C:\temp\files\filename.txt'
  • '文件:\\\C:\testing\testfolder\innerfolder\filename2.txt'

我需要能够仅从用户给定的文件名查询中进行搜索。因此,不是简单地做 a SELECT Table FROM Table AS t WHERE t.filePath LIKE '%:query%',事情将变得更加复杂,以适应路径的文件名部分。文件路径和文件名是动态数据,所以我不能在那里硬编码一个前缀字符串。这让我很困惑,但我知道 JPQL 中有一些字符串表达式可能能够处理这个要求。

基本上,我只需要在FILE_PATH字段中最后一个 '\' 之后的任何内容上返回与给定查询匹配的所有行。这可能吗?

谢谢您的帮助。

编辑:正在使用的数据库是 SQL Server。

0 投票
2 回答
3792 浏览

java - 枚举上的 JPQL LIKE 表达式

JPQL 可以对枚举执行 LIKE 表达式吗?

如果我有一个带有枚举字段 bar 的实体 Foo,我可以在 MySQL 中执行以下操作(bar 存储为 MySQL 枚举)...

但是,JPQL 中的相应查询...

……抱怨……

0 投票
5 回答
52685 浏览

java - JPA 查询 MONTH/YEAR 函数

如何使用MONTH类似于 sql 查询的函数编写 JPA 查询?

当我使用上述模式进行查询时,我收到一个错误:unexpected token - MONTH.

0 投票
1 回答
8619 浏览

oracle - Oracle CLOB 和 JPA/Hibernate ORDER BY?

我有一个适用于 MySQL 和 SQL Server 的 JPQL 查询。但是对于 Oracle,它失败了

原因似乎是 Oracle 不支持带有 CLOB 列的 ORDER BY。

有没有 JPQL 可以解决这个问题?

0 投票
1 回答
2454 浏览

java - 如何自动删除连接表中的一行,以避免出现 ConstraintViolationException?

这似乎应该是一个非常简单的问题,或者至少有一个简单的答案。但是 - 我真的不是数据库专家,而且我在 Hibernate 学习曲线上还差得很远。也就是说,这是设置:

考虑两个实体之间的单向多对多关系,从FooBar

(请原谅下面的任何错别字,以下显然是对实际代码的简化)

FooDTO.java:

BarDTO.java:

在 TSQL 端,连接表是这样设置的:

如果我尝试彻底删除 a BarDTO,我会得到 a ,ConstraintViolationException因为我没有先删除连接表中的行(duh)。

问题:

  • 当我删除 a 时,我可以让 Hibernate 自动删除连接表中的行Bar吗?如何?
  • 如果没有,我如何选择所有Foo具有特定 s 的 s Bar,以便我可以Bar从每个相关Foo的 s 集中删除它Bar

关于后一个问题,我认为这可以通过 aNamedQuery或使用 Criteria API 来完成,但我不知道具体如何编写这样的查询或应用哪些约束。我认为命名查询看起来像:

但我不确定barId参数会去哪里,或者如何加入FooBar表格,因为我没有将它声明为实体。(旁注,我还记得以前尝试加入命名查询的问题 - 加入命名查询是不可能的吗?)