使用子句 IN 从 sql 转换为 jpql
Posted
技术标签:
【中文标题】使用子句 IN 从 sql 转换为 jpql【英文标题】:Convert from sql to jpql with clause IN 【发布时间】: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' )
但它不起作用谁能解释我错过了什么
【问题讨论】:
当你说它不起作用时,它是什么意思?您收到的错误信息是什么? 【参考方案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 的正确方法吗?以上是关于使用子句 IN 从 sql 转换为 jpql的主要内容,如果未能解决你的问题,请参考以下文章
将另一个表中的逐行值转换为字符串并将其插入到 SQL 中的 NOT IN 子句中