您可以通过 Grails 中的脚手架使用动态查找器或分组表吗?

Posted

技术标签:

【中文标题】您可以通过 Grails 中的脚手架使用动态查找器或分组表吗?【英文标题】:Can you use dynamic finders or grouping tables via scaffold in Grails? 【发布时间】:2011-03-29 00:37:57 【问题描述】:

我正在开发一个非常、非常快速和肮脏的应用程序,几乎完全使用脚手架来完成它。这仅供内部使用,只是为了替换电子表格,所以虽然我知道我不应该依赖脚手架进行实际生产使用,但我仍然打算尽可能地使用它们来提高效率(......只是想确保我们不会因为不可避免的问题而偏离轨道!)。

我很好奇的是,由于脚手架可以进行快速而肮脏的 CRUD,并且您可以进行动态查找器进行搜索,有没有一种方法可以动态显示带有约束的脚手架的“列表”操作(即显示所有项目在这个“用户”创建的列表中)?这对我来说很好......

或者,Grails 中是否有任何可用的东西来允许“分组”表。本质上是来自脚手架的“列表”操作,但按特定属性分组(再次考虑按创建它们的用户对所有项目进行分组)。

任何帮助将不胜感激 - 我已经搜索了谷歌和一些书,但没有运气,但想在我驳回这个概念并手写它之前与 *** 社区核实一下。谢谢!

【问题讨论】:

【参考方案1】:

我们在 Grails 应用程序中做了同样的事情,而且相对容易:

    在 list.gsp 中创建一个新表单,引用列表操作<g:form action="list" method="post"> 在该表单中,声明一个包含您要搜索的字段的表:

<div class="buttons"> <span class="button"><g:submitButton name="list" class="search" value=" $message(code: 'default.button.search.label', default: 'Search')"/></span> </div>

    在列表操作中,构建查询(使用 findAll、findWhere、.. 任何你喜欢的)并将其返回到页面:

[wardInstanceList : Ward.findAll(whereClause, [max: params.max, offset: params.offset]) , wardInstanceTotal : (int) Ward.executeQuery("select count(*) " + whereClause).get(0)]

whereClause 类似于:"from Ward where ward = 'something' and room = 'something else'"

【讨论】:

我们使用基于查询的搜索,因为我们的项目通过休眠注释使用复合主键,这在 Grails 中尚不支持 =)

以上是关于您可以通过 Grails 中的脚手架使用动态查找器或分组表吗?的主要内容,如果未能解决你的问题,请参考以下文章

Grails:调试脚手架模板

Grails sql查询

在 Grails 中仅查看您自己的数据

Grails 脚手架继承

Grails 中的脚手架出现 404 错误

动态连接到 grails 中的数据库