【发布时间】:2026-01-07 08:35:01
【问题描述】:
嘿,我是 JPA 的新手,对 SQL 还很陌生,我需要编写一个选择查询
我需要:
“选择金额大于所有美元付款平均值的所有付款”
我有一个 JPA 实体:
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
private String account;
private double amount;
private String currency;
我试过了:
@NamedQuery(name="payByUSD" , query="SELECT x FROM Payment x WHERE x.amount > (SELECT AVG(x.amount)from Payment)")
但我收到以下错误:
- The FROM clause must defined at least one identification variable declaration.
- The right expression is missing from the arithmetic expression.
谁能指出我正确的方向。
【问题讨论】:
-
AVG(amount)而不是AVG(Payment)。 -
好的,我把它改成了 x.amount 但我仍然有这些错误: - FROM 子句必须定义至少一个标识变量声明。 - 算术表达式中缺少正确的表达式。
-
即来自内部的SELECT;和 x 一样。我们在 JPA 查询中处理对象,而不是 SQL。