Tôi đang xây dựng ứng dụng Play2 với Ebean. Tôi đã tạo ra một lớp dịch vụ với một phương pháp để có được địa điểm của một danh sách các id:Làm cách nào để chọn danh sách với 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;
}
Nhưng tôi nhận được:
[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 (?,?) ]
Tôi đã đọc qua http://www.avaje.org/ebean/introquery.html nhưng có lẽ bỏ lỡ cú pháp chính xác. Tôi muốn làm điều này trong sql nguyên. Tôi đã bỏ lỡ điều gì?
Chỉ cần tò mò: 'Địa điểm' là mô hình có tên bảng là' Công ty' hoặc bạn đang chọn với đối tượng của mô hình khác? – biesior
Xin chào! Tôi đang truy cập cơ sở dữ liệu từ một ứng dụng mới nơi địa điểm là tên phù hợp hơn cho thực thể. – jakob