Buduję aplikację Play2 z Ebean. Stworzyłem klasę usług z metodą uzyskania lokali przez listę identyfikatorów:Jak mogę wybrać na liście z 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;
}
Ale ja dostaję:
[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 (?,?) ]
Czytałem przez http://www.avaje.org/ebean/introquery.html ale prawdopodobnie brakowało poprawnej składni. Chcę to zrobić w raw sql. Co przeoczyłem?
prostu ciekawi: 'Venue' jest model, który jest nazwa tabeli' kompania lub zaznaczania obiektów z nią z innego modelu? – biesior
Hello! Mam dostęp do bazy danych z nowej aplikacji, w której miejsce jest bardziej odpowiednią nazwą jednostki. – jakob