[英]How to get the actual instance of a domain class in grails?
我有兩個班級ClassA和ClassB
class ClassA{
String userName
String passwd
.....
}
class ClassB extends ClassA{
String address_line1
String address_line2
.....
}
如果我要問
ClassA obj = ClassA.get(1)
我正在獲取ClassB的實例。 我如何獲得ClassA的實際實例。
謝謝
尼米..
您必須使用如下代碼:
def obj = ClassA.get( 1 )
您碰到了一個GORM陷阱,SpringSource博客上有一篇必讀的文章: http : //blog.springsource.org/2010/07/28/gorm-gotchas-part-3/ (第7章)。 我建議閱讀所有3篇文章! 您會明白,幕后的事情要好得多了:-)
附加信息。 默認情況下,Grails在映射類層次結構時使用“每表層次結構”策略,因此,如果要創建ClassB,它將與ClassA一樣保存在同一表中,因此它們共享同一“主鍵”列。 這就是為什么您得到ClassB而不是ClassA的原因。 GORM基於類型列返回正確的類實例,該類型列包含信息,層次結構的哪個類存儲在所需的行中。 但是,如果需要,您可以顯式輸入;-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.