Play框架 - 如何使用“IN”查询模型?

时间:2011-09-16 14:32:09

标签: java playframework

如何在Play Framework模型查询中获得相同的结果?

SELECT * FROM MyModel WHERE status IN (1, 5, 8) ORDER BY createdAt;

2 个答案:

答案 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子句,而不能使用位置(?)子句。