E ae galera blz ?
Seguinte, estou tentando passar uma aplicação que usa JDBC(Oracle) para Hibernate + JPA, eu criei uma pasta chamada META-INF dentro do src/ e dentro desta pasta META-INF eu criei o meu persistence.xml.
persistence.xml
<?xml version="1.0" encoding="UTF-8" ?>
<persistence 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"
version="1.0">
<persistence-unit name="inventario" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>edu.fatec.zl.bean.Editora</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="hibernate.hbm2dll.auto" value="create"/>
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/>
<property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver" />
<property name="hibernate.connection.password" value="***************" />
<property name="hibernate.connection.username" value="system" />
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
Quando eu subo o Tomcat v7 ele não faz o create table através do Hibernate e não mostra nada na console a respeito de log… Eu coloquei o log4j na pasta lib e coloquei um arquivo log4j.properties na pasta src/. Eu também estou tentando executar o create do Hibernate através de uma classe com um método main, mas ele não cria e ainda o SLF4J me avisa que não existe implementação do log…
Segue abaixo mais detalhes:
log4j.properties
log4j.rootCategory=INFO,CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%r [%t] %-5p %c - %m%n
log4j.logger.org.hibernate=warn,info,error
TesteDao
package edu.fatec.zl.dao;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import edu.fatec.zl.bean.Editora;
public class TesteDao {
public static void main(String[] args) {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("inventario");
EntityManager manager = factory.createEntityManager();
Editora editora = new Editora();
editora.setName("Ivan");
editora.setValue("12345");
manager.persist(editora);
factory.close();
}
}
StackTrace quando eu executo a classe acima, pelo que eu entendi é que não foi criada a tabela logo não tem sequence…
Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not get next sequence value
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1214)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1147)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1153)
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:678)
at edu.fatec.zl.dao.TesteDao.main(TesteDao.java:17)
Caused by: org.hibernate.exception.SQLGrammarException: could not get next sequence value
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.id.SequenceGenerator.generateHolder(SequenceGenerator.java:132)
at org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:105)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
at org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:69)
at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:179)
at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:135)
at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:61)
at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:808)
at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:782)
at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:786)
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:672)
... 1 more
Agradeço desde já a ajuda de todos.