Pergunta

Eu estou enlouquecendo tentando obter um simples Envers exemplo ao trabalho. Eu estou preso na org.hibernate.tool.ant.EnversHibernateToolTask - parece que eu finalmente tenho todos os arquivos jar que eu precisava, mas agora eu recebo a mensagem de erro

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

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

Tanto quanto eu posso dizer, unidades de persistência são associados a arquivos persistence.xml JPA. Mas eu não estou usando um arquivo persistence.xml; Estou usando hibernate.cfg.xml - mas o exemplo envers tem uma <jpaconfiguration> na tarefa 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>

Existe algo que eu possa substituí-lo com a obtê-lo para trabalhar com o arquivo hibernate.cfg.xml? Parece haver ZERO documentação sobre como obter todo este material para trabalho corretamente.

Editar: OK, então o principal problema foi que eu não entendia as opções hibernatetool eo que era apropriado para meu aplicativo. I fez o Hibernate formiga docs , felizmente. Obrigado. Agora eu tenho um novo problema: Eu estou usando anotações, mas eu também criaram um hibernate.cfg.xml para as configurações de propriedades. A tarefa hibernatetool só me permite rodar tanto <configuration /> ou <annotationconfiguration /> não ambos, e até mesmo <configuration /> não funcionará pois já tenho anotações fazer as coisas. Como posso migrar meus configurações de propriedade do arquivo hibernate.cfg.xml aos meus anotações?

Editar: Duh, eu não sabia que você acabou de fazer:

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

hibernatetool docs tarefa .

Outras dicas

Só para lhe dar prespective alto nível. JPA é padrão API persistência fornecido pelo dom
Você pode usar qualquer framework de persistência como Hibernate, TopLink, JDO etc como provedor de persistência com JPA.

Então, só para tornar as coisas claras

Seu código -----> JPA -----> Provedor de persistência (Hibernate).

A sua vai ser uma boa prática de usar JPA como é biblioteca padrão.

Então, qual é a sua informação provedor de persistência só deve ser conhecido para JPA e não do seu XML específico código.

Esta é a forma como o seu persistence.xml será semelhante

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

E o seu âmbito de aplicação será semelhante (Dependente da JPA, nenhuma menção de 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>

Você precisa começar do início: JPA tutorial da Sun .

Este poder ajuda também.

Você precisa criar o persistence.xml e colocá-lo no diretório META-INF do seu projeto.

O Hibernate é uma implementação concreta para JPA, mas há outros (por exemplo, JDO).

Você precisa annotationconfiguration não jpaconfiguration.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top