所以我知道這是可能的使用超類,但是,這是非常限制的靈活性。所以我的問題是,我可以使用接口嗎?某事ala。多態屬性在Grails中多對多映射?
interface Taggable {
/*Adds tag(s) and returns a list of currently set tags*/
List<String> addTags(String ... tag)
/*Removes tag(s) and returns a list of currently set tags*/
List<String> removeTags(String ... tag)
}
class User implements Taggable {
String username
static hasMany = [tags:Tag]
}
class Tag {
String name
static hasMany = [references:Taggable]
static belongsTo = Taggable
static constraints = {
name(nullable: false, blank: false, unique: true)
}
}
我感興趣的是對具有以下標記的對象的引用。但是這個對象不能擴展一個具體的類。這就是爲什麼即時通訊想知道這是否可以用接口來完成。
那麼,可以這樣做嗎?
是的,你可能是對的,我不認爲我可以使用grails gorm mapping來做到這一點。然而,在你的例子中,似乎我需要在引用特殊類的時候添加鑑別符到註釋中,這有點打破了多態的目的。並且還會降低'Tag'實現的靈活性... **所以問題就變成了,是否可以有一個沒有鑑別符的映射,需要代碼中的類引用?** – netbrain 2011-05-10 12:13:50
XML總是一個選項,我們贏了沒有對源代碼中實現類的引用......但是現在誰喜歡XML? – netbrain 2011-05-10 12:21:16
對不起,沒有提供一個片段 - 這將需要很長時間。只是一個嘗試的想法。註釋仍然可能有效,人們確實使用XML--爲不同的DBMS提供不同映射的能力。只要選擇對特定情況更好的方法即可。 – 2011-05-10 12:27:26