MySQL支持以下查询:
SELECT id FROM users WHERE id IN(3,4,8,1) ORDER BY FIELD(id, 3,4,8,1);
EclipseLink 是否支持此查询(不恢复为本机查询)?
当我尝试以下操作时:
Select id from User user where user.id in :ids ORDER BY FIELD(user.id, :ids)
我收到错误:
Syntax error parsing the query ... line 1, column 98: unexpected token [(].
JPA (JQL) 或 EclipseLink 不支持ORDER BY FIELD(field, :values)
。
JPA 确实提供了一种执行本机查询的机制。您可以创建一个本机查询来调用类似于描述中的查询,但是,它当然不是可移植的。