【发布时间】:2014-11-10 14:14:31
【问题描述】:
我有这样的工作代码:
def criteria = Instance.createCriteria()
def list = criteria.listDistinct {
eq("saved", true)
eq("client", client)
and {
basicValues {
eq("fieldA", object.valueA())
/** CODE BLOCK **/
}
customValues {
eq("fieldB", object.valueB())
/** CODE BLOCK **/
}
}
or {
basicValues {
eq("fieldC", object.valueC())
/** CODE BLOCK **/
}
customValues {
eq("fieldD", object.valueD())
/** CODE BLOCK **/
}
}
}
如您所见,我正在使用AND 和OR 部分创建一些标准。它们都加入了另一个条件(basicValues / customValues 与 Instance 处于 1:n 关系)。 /** 代码块 **/ 部分是一组始终相同的条件。
到目前为止,我在每个/** CODE BLOCK **/ 地方都设置了相同的条件(例如lt("field", 10) 等...)。
我可以把这个/** CODE BLOCK **/ 放到函数中吗?所以这些条件将在一个地方,代码将更具可读性???
【问题讨论】:
标签: sql hibernate grails grails-orm