マップフィールドにmysqlで適切な列タイプを使用するように聖杯を強制する方法

StackOverflow https://stackoverflow.com/questions/2000073

質問

Grails 1.1.2 + MySQLに問題があります。

私のドメインクラスには、フィールドが含まれています

Map<String, Map<Integer, Integer>> priceMap

アプリを実行すると、Grailsはテーブル「何か」とサブテーブル「Something_Price_Map」を作成します。 'Something_price_map'が含まれています

BIGINT(20) price_map
VARCHAR(255) price_map_idx
TINYBLOB price_map_elt

問題は、このような小さなマップデータでも列のプリセマップに記入すると、[en:[100:4、500:20、600:24]]]で、データのサイズはの制限を超えていることです。 255バイト。

グレイルがTinyBlobの代わりにMediumBlobまたはBlobkを使用するように、内部マップ(MAP)にMaxSizeの制約を指定する方法はありますか?

ところで... In-Mem DBを使用して、すべてが正常に機能します。

役に立ちましたか?

解決

ご存知かもしれませんが、aがあります マッピング制約 ドメインクラスの場合。ただし、問題はその機能には複雑すぎる可能性があります。

そのような場合、あなたはanを指定できます 明示的な冬眠マッピング (HBMファイル経由)ドメインクラスの。これにより、冬眠の完全な柔軟性が可能になります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top