Frage

Ich werde Nuss einen einfachen Envers zu bekommen versuchen, Beispiel zu arbeiten. Ich bin auf der org.hibernate.tool.ant.EnversHibernateToolTask stecken - es sieht aus wie ich schließlich alle JAR-Dateien habe ich gebraucht, aber jetzt bekomme ich die Fehlermeldung

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

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

Soweit ich das beurteilen kann, Persistenzeinheiten assoziiert sind mit JPA persistence.xml Dateien. Aber ich bin nicht eine persistence.xml Datei; Ich verwende hibernate.cfg.xml - aber das envers Beispiel hat eine <jpaconfiguration> in der Ant-Task:

<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>

ist es etwas, das ich mit ihm ersetzen kann, um es mit der hibernate.cfg.xml Datei zu arbeiten? Es scheint auf ZERO Dokumentation zu sein, wie all dieses Zeug bekommen richtig zu arbeiten.

Bearbeiten OK, so war das Hauptproblem ich nicht die hibernatetool Optionen verstanden haben und was war angemessen für meine Anwendung. Ich habe die ant docs Hibernate , zum Glück. Vielen Dank. Jetzt habe ich ein neues Problem: Ich Anmerkungen bin, aber ich habe auch eine hibernate.cfg.xml für die Eigenschaften Einstellungen vornehmen. Die hibernatetool Aufgabe lässt mich nur entweder <configuration /> oder <annotationconfiguration /> nicht beide laufen und sogar <configuration /> wird nicht funktionieren, da ich bereits Annotationen Dinge zu tun haben. Wie kann ich meine Einstellungen der Eigenschaften von der hibernate.cfg.xml Datei auf meine Anmerkungen migrieren?

Bearbeiten Duh, ich habe Sie nicht erkennen, nur tun:

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

pro hibernatetool Aufgabe docs .

War es hilfreich?

Lösung

Ersetzen Sie die <jpaconfiguration /> mit der <configuration /> -Tag, wie in Hibernate-Tool docs aufgeführt:

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

Andere Tipps

Nur dir hohen prespective geben. JPA ist Standard Persistenz-API von SUN zur Verfügung gestellt.
Sie können eine beliebige Persistenz-Framework wie Hibernate, Toplink, JDO usw. als Persistenz-Provider mit JPA verwenden.

Also nur um die Dinge klar

Ihr Code -----> JPA -----> Persistence Provider (Ruhezustand).

Das wird gut sein, Praxis JPA zu verwenden, wie es Standard-Bibliothek ist.

Also, was ist Ihre Persistenz-Provider Informationen nur auf PPV bekannt sein sollten und nicht den Code spezifische XML ist.

Dies ist, wie Sie Ihre persistence.xml wie

aussehen
<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>

Und Ihr Anwendungskontext aussehen wird (abhängig von JPA, keine Erwähnung von 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>

Sie müssen am Anfang beginnen: Sun JPA-Tutorial .

Diese könnte auch helfen.

Sie müssen die persistence.xml erstellen und sie in META-INF-Verzeichnis für Ihr Projekt stellen.

Hibernate ist eine konkrete Umsetzung für JPA, aber es gibt andere (zum Beispiel JDO).

Sie müssen annotationconfiguration nicht jpaconfiguration.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top