在Grails中重用JPA注释类

时间:2015-05-07 14:38:52

标签: hibernate grails

我按照文档将我的JPA注释类放在src/main/java下。

此外,我在hibernate.cfg.xml下面放了conf/hibernate,如下所示:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <mapping package="com.damluar" />
        <mapping class="com.damluar.CustomerPropertyEntity"/>
        ...
    </session-factory>
</hibernate-configuration>

我还发现我需要添加

configClass = org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsAnnotationConfiguration

到我的DataSource.groovy

然后我使用脚手架生成控制器和视图。当我启动应用程序或使用console时,Grails抛出异常:

URI
    /dataTypeEntity/index
Class
    groovy.lang.MissingMethodException
Message
    No signature of method: static com.damluar.DataTypeEntity.count() is applicable for argument types: () values: [] Possible solutions: print(java.lang.Object), print(java.io.PrintWriter), wait(), dump(), collect(), find()

看起来Grails没有为域类添加持久性方法。

当我启动应用程序时,Grails会列出现有的文物: 伪影

Controllers: 3
Domains: 0

1 个答案:

答案 0 :(得分:0)

我在Grails 3.0.1中遇到了类似的问题,解决方案是将hibernate.cfg.xml放入grails-app/conf(不在hibernate子目录中),如mapping-with-hibernate-annotations-in-grails-3-0-1中所述。