是否允许在GORM中的用户域的子类上使用findByUsername

时间:2015-10-28 20:03:32

标签: grails gorm

我有一个用户域类

class User {
String username
String password
}

class Patient extends User {
String something
}

在控制器中我正在做

def patient = Patient.findByUsername("me")

我得到了患者的空对象。

通过用户名查找患者的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

Patient.findBy ....返回一个Patient对象 User.findBy返回User对象+ Patient对象。 grails中的继承映射在同一个表中。当您在域类中使用继承时,Gorm使用名为“class”的特定列。通过这种方式,您可以使用具有继承的动态查找器并检索所需的子类域。 因此,您可以使用动态查找器查找除id列之外的任何列的任何对象。如果按ID搜索任何对象,则必须使用User.get(id)或User.load(id)。

答案 1 :(得分:0)

您使用的是哪个版本的Grails?使用用户域查询获取记录不应该有任何理由,但不能使用患者域查询。