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