Auto Incremento JPA+Hibernate

1 resposta
D

Ola…estou com uma duvida nao consigo executar o auto incremento utilizando jpa e hibernate. Criei uma variavel chamada codigo no banco de dados PostreSql e uma sequence chamada autoincremento mas nao consigo rodar na minha aplicacao o meu xml esta assim:

<?xml version=“1.0” encoding=“UTF-8”?>

<!DOCTYPE hibernate-reverse-engineering PUBLIC “-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN” “<a href="http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd">http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd</a> >

<hibernate-reverse-engineering>

<table-filter match-schema=“public” match-name=".*" />
&lt;table schema="public" name="venda"&gt;
	&lt;primary-key&gt;
		&lt;generator class="auto"&gt;
			&lt;param name="sequence"&gt;autoincremento&lt;/param&gt;
		&lt;/generator&gt;
	&lt;/primary-key&gt;
&lt;/table&gt;

</hibernate-reverse-engineering>

so q ele nao funciona da um monte de excessao:

SEVERE: Initial SessionFactory creation failed.

javax.persistence.PersistenceException: org.hibernate.MappingException: could not instantiate id generator

at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:737)

at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:121)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)

at com.kiq.util.hibernate.HibernateFactory.<clinit>(HibernateFactory.java:20)

at com.kiq.util.hibernate.BaseDAO.getEntityManager(BaseDAO.java:31)

at com.kiq.util.hibernate.BaseDAO.findByID(BaseDAO.java:93)

at View.FrameComercializar.gravar(FrameComercializar.java:29)

at View.FrameComercializar.main(FrameComercializar.java:16)

Caused by: org.hibernate.MappingException: could not instantiate id generator

at org.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:98)

at org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:152)

at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:192)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)

at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:915)

at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:730)

 8 more

Caused by: org.hibernate.MappingException: could not interpret id generator strategy: auto

at org.hibernate.id.IdentifierGeneratorFactory.getIdentifierGeneratorClass(IdentifierGeneratorFactory.java:109)

at org.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:92)

 13 more

Initial SessionFactory creation failed.javax.persistence.PersistenceException: org.hibernate.MappingException: could not instantiate id generator

Exception in thread main java.lang.ExceptionInInitializerError

at com.kiq.util.hibernate.HibernateFactory.<clinit>(HibernateFactory.java:24)

at com.kiq.util.hibernate.BaseDAO.getEntityManager(BaseDAO.java:31)

at com.kiq.util.hibernate.BaseDAO.findByID(BaseDAO.java:93)

at View.FrameComercializar.gravar(FrameComercializar.java:29)

at View.FrameComercializar.main(FrameComercializar.java:16)

Caused by: javax.persistence.PersistenceException: org.hibernate.MappingException: could not instantiate id generator

at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:737)

at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:121)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)

at com.kiq.util.hibernate.HibernateFactory.<clinit>(HibernateFactory.java:20)

 4 more

Caused by: org.hibernate.MappingException: could not instantiate id generator

at org.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:98)

at org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:152)

at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:192)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)

at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:915)

at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:730)

 8 more

Caused by: org.hibernate.MappingException: could not interpret id generator strategy: auto

at org.hibernate.id.IdentifierGeneratorFactory.getIdentifierGeneratorClass(IdentifierGeneratorFactory.java:109)

at org.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:92)

 13 more

Se alguem poder me ajudar eu agradeco…

1 Resposta

S

Para utilzar hibernate no postgresql, é necessário informar o nome da sequence que será utilizada.

Este link tem isso bem explicado:
http://simundi.blogspot.com/2007/03/jpahibernate-com-postgresql.html

Qualquer coisa posta aqui!

Abraço!

Criado 8 de maio de 2007
Ultima resposta 9 de mai. de 2007
Respostas 1
Participantes 2