-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: Hibernate annotations, Spring, génération auto de base
PostPosted: Fri Dec 11, 2009 5:29 am 
Newbie

Joined: Tue Sep 25, 2007 6:30 am
Posts: 10
Bonjour à tous !

Je m'initie actuellement à Hibernate et tente de faire fonctionner mon projet test de la façon suivante :
- j'utilise H2 (mode in memory)
- J'ai une entity décorée d'annotations JPA
- j'ai essayé avec @Entity, @Table pour définir le nom de la table, un @Id et un @Column sur chaque champ)
- j'ai essayé ensuite avec juste @Entity et @Id pour laisser hibernate gérer les noms par COC (convention over configuration)
- le tout est paramétré dans le context Spring (hibernate template, annotation session factory, datasource, conf hibernate et annotated classes)

A l'exécution je bute invariablement sur une exception :
Code:
nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
org.h2.jdbc.JdbcSQLException: Table PERSON not found;


Ma config spring est la suivante :
Code:
<context:component-scan base-package="org.phoenix.sandbox.hssb.dao"></context:component-scan>

   <!-- DAO -->

   <bean id="abstractDAO" abstract="true"
      class="org.phoenix.sandbox.hssb.dao.AbstractDAO">
      <property name="jdbcTemplate" ref="jdbcTemplate" />
      <property name="hibernateTemplate" ref="hibernateTemplate" />
   </bean>

   <bean id="personDAO" class="org.phoenix.sandbox.hssb.dao.impl.PersonDAOImpl"
      parent="abstractDAO" />

   <!-- Templates -->

   <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
      <property name="dataSource" ref="dataSource" />
   </bean>

   <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
      <property name="sessionFactory" ref="sessionFactory" />
   </bean>
   
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
      <property name="sessionFactory" ref="sessionFactory"/>
   </bean>
   
   <bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
        <property name="transactionManager" ref="transactionManager" />
    </bean>
   
    <tx:annotation-driven />

   <!-- Datasource beans -->

   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
      destroy-method="close">
      <property name="driverClassName" value="org.h2.Driver" />
      <property name="url" value="jdbc:h2:mem" />
      <property name="username" value="sa" />
      <property name="password" value="" />
      <!-- number of max active connections -->
      <property name="maxActive" value="10" />
      <property name="maxWait" value="1000" />
      <property name="defaultAutoCommit" value="true" />
   </bean>

   <bean id="sessionFactory"
      class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
      <property name="dataSource" ref="dataSource" />
      <property name="hibernateProperties">
         <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>
            <prop key="hbm2ddl.auto">create</prop>
         </props>
      </property>
      <property name="annotatedClasses">
         <list>
            <value>org.phoenix.sandbox.hssb.model.Person</value>
         </list>
      </property>
   </bean>


Je me demande si hibernate est capable de créer automatiquement la base en mémoire et la table PERSONS ou si je dois créer un script SQL à fournir soit à SQL soit à une init de H2.

Autre détail, je n'ai pas de classe HibernateUtil pour créer mon annotation session factory, puisqu'elle est configurée par Spring, et fournie à l'hibernate template par injection.

Quelqu'un aurait-il une idée, pourrait me dire si j'oublie quelque chose, ou si je me trompe quelque part?

Merci d'avance !
Frédéric


Top
 Profile  
 
 Post subject: Re: Hibernate annotations, Spring, génération auto de base
PostPosted: Thu Jan 14, 2010 8:43 pm 
Newbie

Joined: Thu Jan 14, 2010 8:39 pm
Posts: 1
Salut;

je pense que tu dois utiliser :

<prop key="hibernate.hbm2ddl.auto">create</prop>


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.