1

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

4

1 回答 1

3

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

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 - 性能不会很好,但如果你只有几个,我认为这无关紧要。

于 2009-07-14T10:15:47.510 回答