在 Grails 中存储和编辑键/值对?

Posted

技术标签:

【中文标题】在 Grails 中存储和编辑键/值对?【英文标题】:Storing and editing key/value pairs in Grails? 【发布时间】:2010-11-10 07:01:46 【问题描述】:

我在 Grails 中有一个域对象,它需要为每个实例存储一组键/值对。绝对不能超过 10 对。应用程序的用户必须能够编辑这些键/值对。现在,我正在考虑将域类的每个实例的数据存储在 HashMap 中。虽然我认为这会起作用,但这意味着我将不得不编写大量自定义代码来编辑、更新和显示这些对象,而不是使用 grails generate-all 生成的代码。有没有更好的方法来存储和编辑键/值对,还是我应该坚持使用 HashMap?

【问题讨论】:

【参考方案1】:

如果您将每个键/值对建模为第一类对象会怎样?例如:

class MyKeyValue 
   static mapping=
      id generator:'assigned'
   
   String id
   String value //i guess this could be an object of some sort, as long as it is a valid property (like Date)

   def getKey = 
      return id;
   


class User 
    //...other properties
    //you'd put this property where the hashmap was originally.
    List MyKeyValue   

generate-all 命令将为此创建一个相当简单的 UI,但它是可用的,并且是自定义的起点。然后,您可以编写自己的约束,并利用 GORM 的内置验证等。

但是,它有点 hacky imo - 性能不会很好,但如果你只有几个,我认为这无关紧要。

【讨论】:

以上是关于在 Grails 中存储和编辑键/值对?的主要内容,如果未能解决你的问题,请参考以下文章

在 Grails/GORM 中定义默认排序顺序

我需要在 Grails 中返回“渲染”吗?

Grails:在用户会话期间存储数据的最佳方法[关闭]

Grails,如何通过外键查找记录

mongoDB 作为 Grails 应用程序的文件存储

多个 Grails 插件和类路径