2012-03-15 4 views
1

Я пытаюсь использовать Class.forName('com.mypack.MyDomain').newInstance() , чтобы создать экземпляр домена grails от его квалифицированного имени. Но его бросание ClassNotFoundException. Я предполагаю, что это потому, что .forName('') ожидает, что класс будет классом java вместо классного класса? Как сделать эту работу в grails или есть другой способ создания объекта домена из имени класса в формате String.Создание класса домена grails от его имени класса

Благодаря Priyank

ответ

8

Другой маршрут, чтобы попробовать было бы сделать:

GrailsDomainClass dc = grailsApplication.getDomainClass('com.mypack.MyDomain') 
def newDomainObject = dc.clazz.newInstance() 
+0

, как передать идентификатор домена и получить конкретный объект домена из таблицы базы данных? Как и я, я бы сделал, User user = User.get (id); –

+0

Я думаю, что новыйDomainObject.get (id) должен работать. –

+0

Afaik, 'dc.get (id)' должно быть то, что вам нужно –

1

Try

GrailsClass clazz = grailsApplication.getArtefactByLogicalPropertyName(DomainClassArtefactHandler.TYPE, className) 
clazz.clazz.newInstance() 
+0

Итак, еще раз я получаю объект типа GrailsClass? –

+0

Нет, попробуйте - это будет объект типа вашего класса домена. Имя класса, которое вы передали getArtefactByLogicalPropertyName –

Смежные вопросы