2011-10-23 55 views
2

我有一個域類設置在Article_Channel表與此類似GORM/Grails的 - 添加額外的列到joinTable表達

class NewsStory { 
    String headline 
    static hasMany = [channels:Channel] 
    static mapping = { 
     table 'NewsStory' 
     addresses joinTable:[name:'Article_Channel', key:'ArticleId', column:'ChannelId'] 
    } 
} 

我需要有一個額外的列填充稱爲ArticleType說。它的值總是相同的,例如, 'news'for this domain class,but will be differentte for others such 'blog' 頻道就像'安全'等

有沒有辦法? 謝謝

回答

2

一個選擇是創建自己的多對多映射類,並在那裏添加字段。

http://grails.org/Many-to-Many+Mapping+without+Hibernate+XML

因此,舉例來說:

class ArticleChannel { 
    NewsStory newsStory 
    Channel channel 
    String articleType 
} 

然後,你NewsStoryChannel班會hasManyArticleChannel類。

+0

感謝您的支持。如何在創建物品之前解決需要物品創建關鍵物品的雞蛋情況,即該物品不適用於關聯物品? – AdiFatLady

+0

我以爲我可能能夠在id和articleType的NewsStory上指定一個組合鍵,但它不會將它傳播給查找表 – AdiFatLady

+0

要在創建Article之前持久化ArticleChannel鏈接,可以將article屬性設置爲空值:真正。您只需編寫代碼即可記住ArticleChannel對象ID,以便稍後使用文章對象填充它。至於1米關係中的複合身份證,我不認爲這是可能的,如果是這樣,我不知道如何。 – schmolly159