Mapping with Hibernate Annotations in Grails 3.0.1 -


how can map domain class annotations in grails 3.0.1?

the following steps didn't work me.

step 1. have created new application grails 3.0.1 (grails create-app books).

step 2. described in mapping hibernate annotations have created new class in src/main/com/books/book.groovy (tried src/main/groovy/com/books/book.groovy well)

package com.books; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id;  @entity public class book {     private long id;     private string title;     private string description;     private date date;      @id     @generatedvalue     public long getid() {         return id;     }      public void setid(long id) {         this.id = id;     }      public string gettitle() {         return title;     }      public void settitle(string title) {         this.title = title;     }      public string getdescription() {         return description;     }      public void setdescription(string description) {         this.description = description;     } } 

step 3. registered class hibernate sessionfactory adding relevant entries grails-app/conf/hibernate/hibernate.cfg.xml file follows:

<!doctype hibernate-configuration system         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration>     <session-factory>         <mapping package="com.books" />         <mapping class="com.books.book" />     </session-factory> </hibernate-configuration> 

step 4. after starting application (grails run-app), 'welcome grails' page (grails-app/views/index.gsp) reports 0 domain classes, means mapping didn't take effect:

  • grails run-app
  • load localhost:8080
  • notice 'domains: 0' under section 'artefacts'

relevant exception in grails 3.0.1

if query above domain class, following exception thrown

caused by: org.hibernate.hql.internal.ast.querysyntaxexception: book not mapped     @ org.hibernate.hql.internal.ast.util.sessionfactoryhelper.requireclasspersister(sessionfactoryhelper.java:189) ~[hibernate-core-4.3.8.final.jar:4.3.8.final]     @ org.hibernate.hql.internal.ast.tree.fromelementfactory.addfromelement(fromelementfactory.java:109) ~[hibernate-core-4.3.8.final.jar:4.3.8.final]        .hibernate.hql.internal.ast.tree.fromclause.addfromelement(fromclause.java:95) ~[hibernate-core-4.3.8.final.jar:4.3.8.final]     @ org.hibernate.hql.internal.ast.hqlsqlwalker.createfromelement(hqlsqlwalker.java:332) ~[hibernate-core-4.3.8.final.jar:4.3.8.final]     @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.fromelement(hqlsqlbasewalker.java:3678) ~[hibernate-core-4.3.8.final.jar:4.3.8.final]     @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.fromelementlist(hqlsqlbasewalker.java:3567) ~[hibernate-core-4.3.8.final.jar:4.3.8.final]     @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.fromclause(hqlsqlbasewalker.java:708) ~[hibernate-core-4.3.8.final.jar:4.3.8.final]     @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.query(hqlsqlbasewalker.java:564) ~[hibernate-core-4.3.8.final.jar:4.3.8.final]     @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.selectstatement(hqlsqlbasewalker.java:301) ~[hibernate-core-4.3.8.final.jar:4.3.8.final]     @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.statement(hqlsqlbasewalker.java:249) ~[hibernate-core-4.3.8.final.jar:4.3.8.final]     @ org.hibernate.hql.internal.ast.querytranslatorimpl.analyze(querytranslatorimpl.java:278) ~[hibernate-core-4.3.8.final.jar:4.3.8.final]     @ org.hibernate.hql.internal.ast.querytranslatorimpl.docompile(querytranslatorimpl.java:206) ~[hibernate-core-4.3.8.final.jar:4.3.8.final]     ... 40 common frames omitted 

as graeme suggested, solution putting hibernate.cfg.xml in grails-app/conf instead of grails-app/conf/hibernate, otherwise configuration not take effect. have submitted pull request reflect in relevant documentation , hope update take effect prevent other users facing same issue.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -