我正在尝试使用Class.forName('com.mypack.MyDomain').newInstance()
从其限定名称创建grails域的实例。
但它扔了ClassNotFoundException.
我假设这是因为.forName('')
期望该类是一个java类而不是一个groovy类?
如何在grails中使这个工作,或者是否有另一种方法从字符串格式的类名创建域对象。
由于 Priyank
答案 0 :(得分:8)
另一种尝试的方法是:
GrailsDomainClass dc = grailsApplication.getDomainClass( 'com.mypack.MyDomain' )
def newDomainObject = dc.clazz.newInstance()
答案 1 :(得分:1)
尝试
GrailsClass clazz = grailsApplication.getArtefactByLogicalPropertyName(DomainClassArtefactHandler.TYPE, className)
clazz.clazz.newInstance()