我有一个用户域类
class User {
String username
String password
}
class Patient extends User {
String something
}
在控制器中我正在做
def patient = Patient.findByUsername("me")
我得到了患者的空对象。
通过用户名查找患者的正确方法是什么?
答案 0 :(得分:0)
Patient.findBy ....返回一个Patient对象 User.findBy返回User对象+ Patient对象。 grails中的继承映射在同一个表中。当您在域类中使用继承时,Gorm使用名为“class”的特定列。通过这种方式,您可以使用具有继承的动态查找器并检索所需的子类域。 因此,您可以使用动态查找器查找除id列之外的任何列的任何对象。如果按ID搜索任何对象,则必须使用User.get(id)或User.load(id)。
答案 1 :(得分:0)
您使用的是哪个版本的Grails?使用用户域查询获取记录不应该有任何理由,但不能使用患者域查询。