Question

Je suis folle d'essayer d'obtenir un Envers simple exemple pour travailler. Je suis coincé sur org.hibernate.tool.ant.EnversHibernateToolTask & # 8212; on dirait que j’ai enfin obtenu tous les fichiers jar dont j’avais besoin, mais maintenant je reçois le message d’erreur

[hibernatetool] Persistence unit not found: 'ConsolePU'.

BUILD FAILED
C:\deka\proj\java\test-database\build.xml:61: Persistence unit not found: 'ConsolePU'.

Autant que je sache, les unités de persistance sont associées aux fichiers JPA persistence.xml. Mais je n'utilise pas de fichier persistence.xml; J'utilise hibernate.cfg.xml & # 8212; mais l'exemple envers a un <jpaconfiguration> dans la tâche ant:

<hibernatetool destdir=".">
        <classpath>
             <fileset dir="src/">
                  <include name="**/*.hbm.xml"/>
            </fileset>

            <path location="${buildDir}" />
        </classpath>
    <jpaconfiguration persistenceunit="ConsolePU" />
    <hbm2ddl
        drop="false"
        create="true"
        export="false"
        outputfilename="versioning-ddl.sql"
        delimiter=";"
        format="true"/>
    </hibernatetool>

Y at-il quelque chose que je peux remplacer par pour le faire fonctionner avec le fichier hibernate.cfg.xml? Il semble y avoir une documentation ZERO sur la façon de faire fonctionner tout cela correctement.

modifier: OK, le principal problème était que je ne comprenais pas les options de l'hibernatetool et ce qui était approprié pour mon application. J'ai trouvé le d 'Hibernate ant docs heureusement. Merci. Maintenant, j'ai un nouveau problème: j'utilise des annotations, mais j'ai aussi configuré un fichier hibernate.cfg.xml pour les paramètres de propriétés. La tâche hibernatetool me permet uniquement d’exécuter <configuration /> ou <annotationconfiguration /> pas les deux, et même <=> ne fonctionnera pas, car j’ai déjà des annotations qui agissent. Comment puis-je migrer les paramètres de propriété du fichier hibernate.cfg.xml vers mes annotations?

modifier: Duh, je ne savais pas que vous veniez de le faire:

<annotationconfiguration configurationfile="...filename..." />

selon le documents de tâche hibernatetool .

Était-ce utile?

La solution

Remplacez le <jpaconfiguration /> par le <configuration /> , comme indiqué dans la documentation d'Hibernate Tools:

<configuration
    configurationfile="hibernate.cfg.xml"
    propertyfile="hibernate.properties"
    entityresolver="EntityResolver classname"
    namingstrategy="NamingStrategy classname">

Autres conseils

Juste pour vous donner une perspective de haut niveau. JPA est une API de persistance standard fournie par SUN.
Vous pouvez utiliser n’importe quel framework de persistance tel que Hibernate, TopLink, JDO, etc. en tant que fournisseur de persistance avec JPA.

Il suffit donc de clarifier les choses

Votre code ----- > JPA ----- & Gt; Fournisseur de persistance (Hibernate).

Une bonne pratique consiste à utiliser JPA car il s'agit d'une bibliothèque standard.

Les informations relatives à votre fournisseur de persistance ne doivent donc être connues que de JPA, et non de vos XML spécifiques au code.

Voici à quoi ressemblera votre persistence.xml

<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="QuarkFrameworkPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
</persistence-unit>

Et votre contexte d'application ressemblera à (dépend de JPA, aucune mention d'Hibernate)

    <bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"
    p:driverClassName="com.mysql.jdbc.Driver" p:url="${db.url}" />




<!-- ADD PERSISTENCE SUPPORT HERE (jpa,etc) -->

<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="QuarkFrameworkPU" />
    <property name="dataSource" ref="dataSource" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="showSql" value="true" />
        </bean>
    </property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
    <property name="dataSource" ref="dataSource" />
</bean>

Vous devez commencer par le début: Didacticiel JPA de Sun .

Cela pourrait également être utile.

Vous devez créer le fichier persistence.xml et le placer dans le répertoire META-INF de votre projet.

Hibernate est une implémentation concrète pour JPA, mais il en existe d’autres (par exemple, JDO).

Vous avez besoin d'une configuration d'annotation et non de jpaconfiguration.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top