具有给定的类结构
class MyObject {
Status status;
}
class Status {
Integer id;
}
我想使用动态查找器基于状态ID值列表进行查询。我想要做的就是这样
MyObject.findAllByStatusInList([1,2,3]);
但这不起作用,因为我的列表需要是Status
个对象。我知道我可以建立一个执行此操作的条件,但是我只想知道是否可以使用Dynamic Finders完成此操作?
答案 0 :(得分:0)
您可以使用 where 子句:
MyObject.where {status.id in [1,2,3]}.find()
UPD
动态查找器不支持别名,因此使用Criteria(或DetachedCriteria)解决方案。
如果 Status 类是域实体,则可以从数据库中检索它们的列表(或加载它们的代理),然后按状态查询 MyObject 列表。
因此,我看不到其他合适的解决方案,而是在您的情况下使用标准。
答案 1 :(得分:0)
您仍然可以使用动态查找器来完成此操作。
def statuses = [1, 2, 3].collect { Status.load(it) }
MyObject.findAllByStatusInList(statuses)
From the react-testing-library docs将为您创建一个代理,只要您不访问id
以外的任何属性,就不需要从数据库中检索实例。
答案 2 :(得分:0)
您可以使用它。
List
<
Integer > statuses = [1, 2, 3]
MyObject.findAllByStatusInList(statuses)