在我的域对象我有一个地图:GORM:如何设置一个值的数据类型在地图
Map<String, String> stuff
GORM会自动创建一个表,其中键和值是为varchar(255)。
我需要值为LongText改为。我该如何做这件事?
此外,是否有一个解决方法,这不涉及使用休眠配置?
在我的域对象我有一个地图:GORM:如何设置一个值的数据类型在地图
Map<String, String> stuff
GORM会自动创建一个表,其中键和值是为varchar(255)。
我需要值为LongText改为。我该如何做这件事?
此外,是否有一个解决方法,这不涉及使用休眠配置?
我只能通过Hibernate XML config和specifying a key
mapping的恐怕stuff
。
我想你可以在你的Domain类的映射关闭中声明这个设置。
约束的一个字符串字段,以便其MySQL的列类型是TEXT:
static mapping = {
myTextField type: 'text'
}
也许这可以帮助你:Grails的指南(5.5.2.1 Table and Column Names)
如果'stuff'是标量类型,但它不适用于地图 – mkoryak 2011-04-14 04:14:55
它实际上适用于'Map
在Grails 1.3.7,2.0.0和2.1.1中测试。从模式导出:'create table foo_baz(baz bigint,baz_idx varchar(255),baz_elt longvarchar not null);' – rlovtang 2012-10-15 19:33:49
如果您想更好地控制数据库的生成/更新方式,那么最好使用数据库迁移,然后让Hibernate来管理它。我们使用Liquibase,它非常易于使用和灵活,并且已经有一个Grails plug in。另外,如果我没有弄错数据库迁移将被集成到1.4版的Grails核心中,那么您将能够使用模式迁移,而无需安装任何插件。
请参阅Carlos Daniel Gadea Om的答案。它实际上适用于'Map' –
rlovtang
2012-10-15 19:41:31
是的,这应该是被接受的答案。 – 2012-10-15 23:04:45