簡體   English   中英

如何在Grails中獲取域類的實際實例?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM