2013-08-20 50 views
0

StaffUsergrails findByDomain返回null

class Person { 
     User user 
} 

class Staff extends Person { 
     //other properties 
} 

class User { 
     String username 
     String password 
} 

我知道一個用戶登錄,現在我想找到Staff通過登錄User相同。 User的方面沒有關係。

我實現的代碼是:

def createdBy = User.get(springSecurityService.principal.id) 
log.info("User id : "+createdBy.id) // it works 
def staff = Staff.findByUser(createdBy) //it returns null 

在格姆這是不適用的,否則我失去了一些東西?

grails findBy documentation沒有什麼可以告訴findByDomain()。

+0

您是否嘗試過'Person.findByUser(createdBy)'?如果沒有直接關係,我不確定您是否能夠從用戶那裏獲得員工。 – dmahapatro

+0

你應該有什麼工作。類似於@dmahapatro所說的,是否有可能將孩子救到一個人vs一個職員? – ikumen

回答

1

的問題是CLOSED錯誤,在用User這是不以適當方式heppening。插入Staff(差grails沒有通知我。)

上面的代碼工作完美。

def createdBy = User.get(springSecurityService.principal.id) 
def staff  = Staff.findByUser(createdBy) 

但是,同時實施以標準的方式找到Staff的另一種方式:

def createdBy = User.get(springSecurityService.principal.id) 
    def staff  = staffCriteria.get{ 
     user{ 
      idEq(createdBy.id) 
     } 
    } 
+0

如果上面的代碼有效,那麼你的問題是什麼? – danielad

+0

@danielad在嘗試之後他發現了自己,問題在答案之前發佈。 Duh –

+0

@WaqasShah SO只有建設性的回答/批評的空間。考慮這個警告。 – dopatraman