我正在用Ebean構建Play2應用程序。我創建了一個服務類的方法通過ID列表獲取場館:如何在Ebean列表中選擇createSqlQuery
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中執行此操作。 我錯過了什麼?
只是好奇:'Venue'是一個模型,其表的名稱爲'Company'或您選擇用它畫線的其他模式? – biesior
你好!我正在從一個新的應用程序訪問數據庫,其中場地是更適合實體的名稱。 – jakob