当前位置: 首页 > 知识库问答 >
问题:

无法在JPA中执行子查询

谭池暝
2023-03-14
String query = "select t from myTable t where t.idOne = " + myId
+ " AND t.idTwo = " + myIdTwo
+ " AND t.idThree = " + myIdThree
+  "AND t.idFour = (select max(t.idFour) from t)";

所以myTable有一个列,我需要从中获取最大id并在查询中使用它。

最后一行给了我一个错误:

运行查询时出错:在EntityManager中创建查询时出现异常:< br > Java . lang . illegalargumentexception:在EntityManager中创建查询时出现异常:异常描述:语法错误解析[上面的查询]。[214,214]必须为范围变量声明提供标识变量

共有1个答案

郭翰墨
2023-03-14

看起来就像你犯了错误。您的模式中有表< code>t吗?否则,您应该指定表名而不是别名。

String query = "select t from myTable t where t.idOne = " + myId
+ " AND t.idTwo = " + myIdTwo
+ " AND t.idThree = " + myIdThree
+  "AND t.idFour = (select max(st.idFour) from myTable st)";
 类似资料:
  • 我有两个表,一个用于聚会,一个用于记分卡模板映射。记分卡模板映射表有一个返回到party(on id)的外键。我想找到一个有记分卡模板映射细节的所有各方的列表。

  • 问题内容: 我正在使用hibernate3.6.7进行映射。我将连接部分设置为静态。我需要服务程序永远运行,另一个服务将调用该服务的某些方法来查询数据库。当我让该服务运行时,第一天工作良好,但是第二天我调用它时,它给出了: 似乎连接已关闭。有人可以给我一些建议吗? 非常感谢你:) 问题答案: 听起来好像数据库已关闭连接或某个网络设备已终止套接字。您可以通过多种方法来解决此问题: 您可以经常在连接上

  • 问题内容: 我正在使用Struts2&Hibernate并在使用字符串搜索数据时出现以下错误,但是在使用数字搜索时对我有用。我从豆类和豆类中的字符串类型的已定义的属性中获取此值。 下面我提供代码: 豆类: 对应: 错误: 问题答案: 之所以引发,是因为Hibernate生成的SQL查询的SQL语法错误。构建查询的方式是错误的,不应将值(尤其是字符串值)连接到结果查询,因为此类代码容易受到SQL注入

  • 问题内容: 所涉及的rdms是oracle错误是 我想用这个查询做的是: 阈值表包含列阈值类型,其中包含现金交易表的列名称 对于阈值表中的每个记录,我们需要根据现金交易表中的阈值类型来比较总和(金额)组。 并将获取的数量与阈值表的threshold_amount比较 我需要选择threshold_id 阈值表: 现金交易表: 期望的输出: 让我们进行第一个提取:阈值表中的第一个记录 1.现在thr

  • 我正在通过FluentCassandra和C#访问Cassandra1.2。我使用了DataStax安装包。问题是我无法执行下面显示的范围查询。 我尝试了以下创建表的方法: 我的ConnectionBuilder: 我该怎么做?

  • 假设spring boot中有一个名为Person的类,其结构如下 人由一组电话号码组成。 是一个由上述字段组成的类,其中类别表示或等。 因此,每当我想要获取带有一些的详细信息时,我都会调用上面的方法,然后它应该获取详细信息,以及,其是。 方法应该是每当它在内部执行方法的查询时,它应该执行后续的查询来获取类别为的。我有没有办法得到上面提到的,或者有没有其他方法来实现它?请让我知道。 PS:如果在我