【问题标题】:Convert from sql to jpql with clause IN使用子句 IN 从 sql 转换为 jpql
【发布时间】:2021-02-13 04:11:14
【问题描述】:

我在 JPQL 中转换的 SQL 中有这个请求

===SQL===
 SELECT * FROM ELEVE WHERE ELEVE.AGE IN ('7','8','5','6', '12' ) 

===JPQL===

SELECT E FROM ELEVE E  WHERE E.AGE IN ('7','8','5','6', '12' ) 

但它不起作用谁能解释我错过了什么

【问题讨论】:

  • 当你说它不起作用时,它是什么意思?您收到的错误信息是什么?

标签: sql jpql


【解决方案1】:

您缺少 * 或 select 之后的列名,它可以是 E.* 或只是 * 或者如果您想指定特定的列名,它应该像 E.columnanme

===SQL===
 SELECT * FROM ELEVE WHERE ELEVE.AGE IN ('7','8','5','6', '12' ) 

===JPQL===

SELECT E.*  FROM ELEVE E  WHERE E.AGE IN ('7','8','5','6', '12' ) 

【讨论】:

  • jpql 中不需要 *
  • 在第二个查询中,您使用的是 Select E ,而 E 是表的名称而不是列,因此您应该使用 * from name the columns
  • 您要我加 * 来获取所有列还是获取一列?事实上,我认为 E 匹配 jpql 中的所有列,这就是我这样做的原因
  • 不是我,而是 sql 希望你在 select 之后放置列名或 *
  • 好的,谢谢,但是你知道 jpql 是把我的 sql 转换成 jpql 的正确方法吗?
猜你喜欢
  • 1970-01-01
  • 2018-06-08
  • 2011-10-18
  • 1970-01-01
  • 2012-06-30
  • 1970-01-01
  • 2012-07-13
  • 1970-01-01
  • 2022-12-05
相关资源
最近更新 更多