除了不同域类之间的关联,GORM还支持基本集合类型的映射。 。例如,以下类创建一个昵称关联,它是一组字符串实例
class Person {
static hasMany = [nicknames:String]
}
这会将昵称存储在单独的表person_nicknames
中:
---------------------------------------------
| person_id | nickname |
---------------------------------------------
| 1 | Fred |
---------------------------------------------
默认情况下,两列都可以为空,并且不存在任何索引。我想进行以下更改
(person_id, nickname)
显然我可以运行一个SQL脚本来进行这些更改,但是我可以在域模型中表达这一点,以便GORM在创建和更新模式时这样做吗?
答案 0 :(得分:0)
不,目前这是不可能的。您可以通过将Nickname作为显式域类来伪造它(Andre Steingress在问题评论中给出了一个示例),但是否则您必须编写迁移。
答案 1 :(得分:0)
您可以使用joinTable和基本集合类型。
http://grails.org/doc/2.4.3/ref/Database%20Mapping/joinTable.html
您可以使用列映射指定SQL行为:
http://grails.org/doc/2.4.3/ref/Database%20Mapping/column.html