简体   繁体   English

从类名称创建grails域类

[英]creating a grails domain class from its class name

I am trying to use the Class.forName('com.mypack.MyDomain').newInstance() to create an instance of the grails domain from its qualified name. 我正在尝试使用Class.forName('com.mypack.MyDomain').newInstance()从其合格名称创建grails域的实例。 But Its throwing a ClassNotFoundException. 但是它抛出了ClassNotFoundException. I assume this is because the .forName('') expects the class to be a java class instead of a groovy class? 我认为这是因为.forName('')期望该类是Java类而不是常规类? How to make this work in grails, or is there another method to create the domain object from the class name in String format. 如何通过grails进行此工作,或者是否存在另一种方法以String格式从类名称创建域对象。

Thanks Priyank 谢谢普里扬克

Another route to try would be to do: 另一种尝试的方法是:

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

Try 尝试

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM