我有两个类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的实际实例。
由于
Nimmy ..
答案 0 :(得分:0)
你必须使用这样的代码:
def obj = ClassA.get( 1 )
你遇到了一个GORM问题,SpringSource博客有一篇必读文章:http://blog.springsource.org/2010/07/28/gorm-gotchas-part-3/(章节代理人)。我建议阅读所有3篇文章!你会明白,在幕后会发生什么变得更好: - )
其他信息。默认情况下,Grails在映射类层次结构时使用“每个表的层次结构”策略,因此如果您正在创建ClassB,它将保存在与ClassA相同的表中,因此它们共享相同的主键列。这就是为什么你得到ClassB而不是ClassA。 GORM根据类型列返回正确的类实例,该列包含信息,层次结构的类存储在您想要的行中。但是如果你愿意,你可以明确地重新输入; - )