2012-12-14 87 views
2

Grails支持基本集合類型的映射,例如:Grails的映射基本集合類型

static hasMany = [nicknames: String] 

那麼究竟是做上述VS只是添加String類型的數組(或列表)之間的差域類 - 即

List<String> nicknames 

回答

4

不同的是,只用:

List<String> nicknames 

Grails不知道你真的想要映射(通過Hibernate)。 Grails使用static hasMany來告訴Hibernate如何工作而不需要Hibernate映射文件。

從技術上講,您不需要定義List<String>。你只需要hasMany。這將默認在Set<String>。如果您需要索引列表,那麼保留List<String>以及hasMany也可以。

+0

當你說'Grails不知道你實際上想要映射'時,你究竟是什麼意思? – uknownot

+0

例如,當我定義一個非集合字段(如整數或某物)時,Grails知道我希望它映射並在數據庫中創建相應的列。 – uknownot

+0

這是不同的,因爲你在談論一個專欄與一個外鍵關係。 Grails需要知道集合與父級之間的關係是否正確配置。 – Gregg