首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于Grails createCriteria的几个问题

关于Grails createCriteria的几个问题
EN

Stack Overflow用户
提问于 2014-07-22 14:41:49
回答 1查看 107关注 0票数 0

我读过关于createCriteria的文章,并对这些工具的工作原理以及它在为下拉框提供值方面的可用性感兴趣。

因此,我在数据库中有一个表,资源表,在这个表中,我在域类中定义了一个名为Resource.groovy的表。资源表共有10列,其中5列为

  • 材料Id
  • 材料描述
  • 资源
  • 资源Id
  • 产品代码

因此,使用createCriteria,我可以像查询一样使用返回我想要的项

代码语言:javascript
运行
复制
def resList = Resource.createCriteria().list { 
        and { 
            eq('resource', resourceInstance)
            ne('materialId', '-')
        }
    }

在上面的示例中,我希望获得与资源= resourceInstance匹配的数据,并且没有一个materialId等于'-‘。

我想在我的表单上使用上面createCriteria返回的数据,在这里我想使用选择下拉列表中的一些列。下面是我为选择下拉列表使用的代码。

代码语言:javascript
运行
复制
<g:select id="resourceId" name="resourceId" 
                    from="${resList}"
                    disabled="${actionName != 'show' ? false : true}"  />
  • 如何使它在下拉列表中只显示从“产品代码”栏中获取的值?我相信使用createCriteria创建的列表将根据createCriteria的规范返回所有10列。但是,我只想在下拉列表中使用Product值。
  • 如果在表单中的选择下拉列表中,我希望将值显示为“资源Id -资源描述”,那么如何自定义数据?这些值是一个select下拉列表的多个列的组合,但我不知道如何将这两个列合并到一个选择下拉列表中。
  • 我看到hql和GORM查询是从表中获取数据的更好方法,而不是使用createCriteria。这是真的吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-07-22 15:09:00

首先,请参考使用select in Grails的文档。回答所有问题:

  • 是的,可以自定义从下拉列表中选择的列表。在这种情况下,应该类似于from="${resList*.productCode}"
  • 是的,这也可以通过以下方式进行定制 from="${resList.collect { \"${it.resourceId} - ${it.resourceDesc}\" } }"
  • 那得看情况。如果某个域中涉及到关联,那么使用标准将导致可能不需要的急切的获取。但是,有了HQL,就可以灵活地根据需要裁剪查询。有了最新版本的Grails,这些赏金就大大减少了。在任何可能的情况下,都推荐使用DetachedCriteria,查询等。因此,这是一种混合和匹配的情况下,正在考虑。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24890438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档