我读到了关于createCriteria的内容,并对这些内容的工作方式感兴趣,以及它为下拉框提供值的可用性。
所以说,我在数据库资源表中有一个表,我已经在域类中定义了名为Resource.groovy的表。资源表总共有10列,其中5列是
所以使用createCriteria,我可以像查询一样使用返回我想要的项目
def resList = Resource.createCriteria().list {
and {
eq('resource', resourceInstance)
ne('materialId', '-')
}
}
在上面的地方,我想获得与resource = resourceInstance匹配的数据,并且materialId都不等于' - '。
我想在我的表单上使用上面的createCriteria返回的数据,我想在我的选择下拉列表中使用一些列。下面是我用于选择下拉列表的代码。
<g:select id="resourceId" name="resourceId"
from="${resList}"
disabled="${actionName != 'show' ? false : true}" />
由于
答案 0 :(得分:0)
首先请参阅使用select in Grails的文档。回答所有问题:
是的,可以自定义下拉列表中要选择的列表。在这种情况下,它应该类似于from="${resList*.productCode}"
是的,这也可以通过
等方式进行自定义 from="${resList.collect { \"${it.resourceId} - ${it.resourceDesc}\" } }"
这取决于。如果域中涉及关联,那么使用Criteria将导致可能不需要的急切提取。但是使用HQL,可以根据需要灵活地定制查询。使用最新版本的Grails,这些边界被最小化了很多。使用DetachedCriteria,尽可能推荐查询等。因此,它与所考虑的场景混合和匹配。