我按照文档将我的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
答案 0 :(得分:0)
我在Grails 3.0.1中遇到了类似的问题,解决方案是将hibernate.cfg.xml
放入grails-app/conf
(不在hibernate子目录中),如mapping-with-hibernate-annotations-in-grails-3-0-1中所述。