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 の組み込みの検証などを活用できます。

ただし、それは少しハッキーなイモです。パフォーマンスはそれほど良くありませんが、数が少ない場合は問題ないと思います。

于 2009-07-14T10:15:47.510 に答える