0

マップを含む単純なドメインクラスを作成しました。

class Foo {
   Map bar
}

バーマッピングは、次のようにsthとして作成されます。

create table foo_bar (bar bigint, bar_idx varchar(255),
   bar_elt varchar(255) not null);

... http://www.grails.org/GORM+-+Collection+Typesに記載されているとおり:

静的hasManyプロパティは、マップ内の要素のタイプを定義します。マップのキーは文字列でなければなりません。

今私の質問は-文字列以外の値のマップを作成することは可能ですか?純粋なHibernate(要素マッピング)を使用してそれを達成できます-これをGrailsに移植する方法はありますか?

4

1 に答える 1

1

文字列以外の KEYS のマップを作成することが可能かどうかという意味だったと思います。

それは不可能です: すべてのキーは文字列である必要がありますが、値は任意の型にすることができます。必要なものを実現する方法は、マップのキーとして必要なクラスのタイプに一意の識別子を使用することです。

データベースに Map を永続化する必要があり、2 つのインスタンス (objectA と objectB) があるとします。マップに永続化したい名前は "relationship" です。

relationship."objectA.toString()" = objectB

それはうまくいくはずです。toString() を hashCode() 、 getId() 、またはそのオブジェクトのみを識別する一意の文字列を提供するものに変更すると、それが得られます。

于 2011-05-03T09:51:31.223 に答える