Problema JPA e Hibernate - Auto Incremento nao fumega [RESOLVIDO]

2 respostas
renanpto

E ai pessoal estou com uma duvida em persistir um objeto com JPA e Hibernate. qdp eu mando persistir lança uma exception

javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not get next sequence value
	at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:647)
	at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:218)
	at teste.HibernateUtil.inicializar(HibernateUtil.java:29)
	at teste.Teste.main(Teste.java:6)

Entidade:

@Entity
@Table(name="PESSOA")

public class PessoaTO extends AbstractEntity{
	
	private static final long serialVersionUID = 1L;
	private Integer id;
	private String nome;

	@Id
	@GeneratedValue (strategy = GenerationType.AUTO)
	@Column(name="ID")
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@Column(name="NOME")
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
}

A Classe HibernateUtil:

private static EntityManagerFactory entityManagerFactory = null;
	private static EntityManager entityManager = null;

	public static void inicializar() {
		try {
			entityManagerFactory = Persistence.createEntityManagerFactory("EJBWeb");
			entityManager = entityManagerFactory.createEntityManager();
			EntityTransaction tran = entityManager.getTransaction();			
			tran.begin();			
			PessoaTO pessoa = new PessoaTO();
			pessoa.setNome("Teste");	

		        // aqui da pau
			entityManager.persist(pessoa);
			
			tran.commit();
			
		} catch (Throwable ex) {
			ex.printStackTrace();
		}
	}

há, estou utilizando FireBird… criei o generator e a trigger… para o auto incremento…

Se alguem saber me ajudar eu agradeço…

valeu!

2 Respostas

RaulCarlin

Olha, uma opnião, não tenho certeza, mas acho que o incremento que o Hibernate utiliza neste seu caso é o do campo e não baseado em Tirggers.

Não seria o caso de usar um SEQUENCE?

renanpto

Valeu ja resolvi…

Fiz assim:

@Id 
	@SequenceGenerator( name = "GEN", sequenceName = "GEN_PESSOA_ID" )
	@GeneratedValue( strategy = GenerationType.AUTO, generator = "GEN" )  
	private Integer id;
Criado 23 de julho de 2007
Ultima resposta 23 de jul. de 2007
Respostas 2
Participantes 2