如何使用Ebean createSqlQuery在列表中进行选择

jak*_*kob 5 mysql ebean playframework-2.0

我正在用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;
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了:

[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 (?,?) ] 
Run Code Online (Sandbox Code Playgroud)

我已阅读http://www.avaje.org/ebean/introquery.html,但可能错过了正确的语法.我想在原始sql中执行此操作.我错过了什么?

Arn*_*lay 3

您的要求似乎不正确。

关于什么 :

 "select c.id, c.name from Company c where c.id in (:ids)";
Run Code Online (Sandbox Code Playgroud)