2013-06-28 44 views
0

對於groovy來說是新手,並且在這個問題上停留了相當長的一段時間。Grails GORM MissingMethodException

繼承人問題的方法。

protected User currentUser() { 
     def user = springSecurityService.currentUser 
     println "In currentUser Method" 
     println "Is userId null?" 
     println user.id == null 
     println user.id instanceof Long 

User.get(user.id) 
} 

而且User.get是在格姆封裝的方法

D get(Serializable id) { 
     execute({ Session session -> 
      session.retrieve(persistentClass, id) 
     } as SessionCallback) 
    } 

即時得到錯誤

No signature of method: User.get() is applicable for argument types:() values: [] 

什麼我不明白的是通過println語句我覈實,

  1. user.id不爲空
  2. user.id是instanceof Long,它實現了Serializable接口。

任何想法這裏發生了什麼?

謝謝。

+0

我一直都有類似的問題,是用戶導入的? springSecurityService是否正確注入? – marko

+0

作爲一個實驗,如果將user.id分配給變量,打印出變量(只是爲了確保它存在),然後執行User.get(variableName),會發生什麼 - 雖然取決於User對象,但您可能會考慮User.findByUserId(variableName) –

回答

0

可能的解決方案可能是您的語句無效importUser是一個非常普遍的類名,所以也許你(或你的IDE)導入了一個不同於你所預期的User類。導入的類可能沒有get(id)方法。

相關問題