如何在Play Framework模型查询中获得相同的结果?
SELECT * FROM MyModel WHERE status IN (1, 5, 8) ORDER BY createdAt;
答案 0 :(得分:7)
你试过吗
MyModel.find("status IN (:ids) ORDER BY createdAt").bind("ids", idExs).fetch();
答案 1 :(得分:1)
如果(1, 5, 8)
是一个常数,那就非常简单了:
List<MyModel> r = MyModel.find("status in (1, 5, 8) order by createdAt").fetch();
如果它应该是一个参数:
List<Integer> s = Arrays.asList(1, 5, 8);
List<MyModel> r = MyModel.find("status in :s order by createdAt")
.bind("s", s).fetch();
这里重要的一点是,由于Hibernate的限制,您只能使用带有命名参数的in
子句,而不能使用位置(?
)子句。