Projets
Pages enfant
  • 3.3.4 Accès aux données avec JPA

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

On trouvera par exemple dans le fichier /properties/dao/dao.xml, pour une base maîtrisée par l'application :

Bloc de code
<bean
    id="databaseManager1"
      class="[...].hibernate.UpgradableHibernateDatabaseManagerImpl" >
  <property
    name="sessionFactoryBeanName"
    value="sessionFactory" />
  <property
    name="createSessionFactoryBeanName"
    value="createSessionFactory" />
  <property
    name="upgradableSessionFactoryBeanName"
    value="upgradableSessionFactory" />
</bean>

Comme on le voit, on indique au gestionnaire de base bases de données quelles sont les session factories (« usines à sessions ») à utiliser pour accéder à la base de données, en créer les structures et les mettre à jour.

...

La déclaration d'un gestionnaire de base de données dont l'application n'a pas la maîtrise se fera de la manière suivante :

Bloc de code
<bean
    id="databaseManager2"
      class="[...].hibernate.BasicHibernateDatabaseManagerImpl" >
  <property
    name="sessionFactoryBeanName"
    value="sessionFactory" />
</bean>

...

Les trois beans sessionFactory, createSessionFactory et updateSessionFactory (le premier seulement si l'on ne maîtrise pas la structure de la base de données) héritent tous du même bean abstrait abstractHibernateSessionfactory :

Bloc de code
<bean
    id="abstractHibernateSessionFactory"
      abstract="true"
      class="[...].orm.hibernate3.LocalSessionFactoryBean" >
  <property
    name="configLocation"
    value="classpath:/properties/dao/hibernate/hibernate.cfg.xml" />
  <property name="mappingLocations">
    <list>
      <value>
        classpath:/properties/dao/hibernate/mapping/Class1.hbm.xml
      </value>
      ...
    </list>
  </property>
</bean>

...

Bloc de code
<bean id="sessionFactory"
      parent="abstractHibernateSessionFactory"
      lazy-init="true" >
</bean>

<bean  id="createSessionFactory"
       parent="abstractHibernateSessionFactory"
       lazy-init="true" >
  <property name="hibernateProperties">
    <props>
      <prop key="hibernate.hbm2ddl.auto">create</prop>
    </props>
  </property>
</bean>

<bean id="updateSessionFactory"
      parent="abstractHibernateSessionFactory"
      lazy-init="true" >
  <property name="hibernateProperties">
    <props>
      <prop key="hibernate.hbm2ddl.auto">update</prop>
    </props>
  </property>
</bean>

...

Pour cela, dans Eclipse, après avoir correctement paramétré le fichier hibernate.cfg.xml, faire Window => Open Perspective.
Dans la vue Hibernate Configurations de cette perspective, cliquer sur le bouton "+" pour définir une nouvelle configuration. Renseigner les champs en s'inspirant l'exemple suivant :

...