我正在用 Ebean 构建一个 Play2 应用程序。我创建了一个服务类,其中包含通过 id 列表获取场所的方法:
public static List<Venue> getVenuesForIds(List<Long> list){
ArrayList<Venue> venues = new ArrayList<Venue>();
String sql = "select c.id, c.name from Company c where in (:ids)";
List<SqlRow> sqlRows =
Ebean.createSqlQuery(sql).setParameter("ids", list).findList();
for(SqlRow row : sqlRows) {
venues.add(new Venue(row.getLong("id"), row.getString("name")));
}
return venues;
}
但我得到:
[PersistenceException: Query threw SQLException:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'in (201639091,201637666)' at line 1 Query was: select c.id, c.name from Company c where in (?,?) ]
我已经阅读了http://www.avaje.org/ebean/introquery.html但可能错过了正确的语法。我想在原始 sql 中执行此操作。我错过了什么?