【发布时间】:2011-04-14 03:51:47
【问题描述】:
在我的域对象中,我有一张地图:
Map<String, String> stuff
GORM 自动创建一个表,其中键和值是 varchar(255)。
我需要将值改为 LongText。我该怎么做?
另外,是否有不涉及使用休眠配置的解决方法?
【问题讨论】:
标签: grails map grails-orm
在我的域对象中,我有一张地图:
Map<String, String> stuff
GORM 自动创建一个表,其中键和值是 varchar(255)。
我需要将值改为 LongText。我该怎么做?
另外,是否有不涉及使用休眠配置的解决方法?
【问题讨论】:
标签: grails map grails-orm
我认为您可以在域类的映射闭包中声明此设置。
String 字段的约束,使其 MySQL 列类型为 TEXT:
static mapping = {
myTextField type: 'text'
}
也许这可以帮助你:Grails 指南(5.5.2.1 Table and Column Names)
【讨论】:
Map<String, String>。键将始终为 varchar(255),但值在 MySQL 中为 longtext,在 H2 和 HSQLDB 中为 longvarchar。
create table foo_baz (baz bigint, baz_idx varchar(255), baz_elt longvarchar not null);
恐怕只能通过Hibernate XML config 和specifying a key mapping 获得stuff。
【讨论】:
Map<String, String>
如果您想更好地控制数据库的生成/更新方式,那么最好使用数据库迁移,然后让 Hibernate 管理它。我们使用非常易于使用且灵活的 Liquibase,并且已经有一个 Grails plug in 用于它。另外,如果我没记错的话,1.4 版的 Grails 核心中将集成数据库迁移,因此您无需安装任何插件即可使用模式迁移。
【讨论】: