2011-12-25 3 views
0

Я новичок в Grails и пытается следовать с примерами в «Начиная с Groovy и Grails»getArtefact возвращение NULL для «Домен»

Когда я пытался из примеров, я имел следующий вопрос:

domainClass = grailsApplication.getArtefact("Domain", domainClassName) 

ДоменClass возвращал NULL. Но когда я использую следующий фрагмент, я получаю правильный класс.

if (!domainClass) { 
     def artefacts = grailsApplication.getArtefacts("Domain") 
     domainClass = artefacts.find {item -> 
      item.name == domainClassName 
     } 
    } 

Что не так с первой частью? Есть ли что-нибудь еще, что мне нужно позаботиться. Я загрузил пример кода книги, и я не видел никаких других конкретных изменений.

Спасибо заранее!

+0

пытается использовать domainClassName без пакета приставка – jenk

+0

@Jenk: Спасибо за ответ !!! Я использую domainClassName без префикса пакета. Я интактный, получаю его из параметров, как показано ниже: domainClassName = capitalize (params.domain) \t \t domainClass = grailsApplication.getArtefact ("Domain", domainClassName) – iKT

+0

проанализируйте свой метод capize. я полагаю, что это может быть ваше истинное имя класса. – jenk

ответ

0

Использовать полный путь к классу домена i.e префикс пакета.

0

Первый фрагмент кода работает также, domainClassName просто должна быть полным имя т.е. packagename.domainclassname

def domainClassName = 'org.abc.Sample' 
def domainClazz = grailsApplication.getArtefact('Domain', domainClassName) 
Смежные вопросы