Problema ao persistir em DB Derby via Hibernate (SQLGrammarException)

4 respostas
A

Estou tendo um problema meio chato com o Hibernate + Derby.
Criei a seguinte table:

CREATE TABLE pessoa( pessoa_id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, pessoa_nome VARCHAR(255) NOT NULL, pessoa_pessoa CHAR(1) NOT NULL, pessoa_documento VARCHAR(20) NOT NULL, pessoa_endereco VARCHAR(255) NOT NULL, pessoa_compl_end VARCHAR(50), pessoa_bairro VARCHAR(50) NOT NULL, pessoa_cep CHAR(10) NOT NULL, pessoa_cidade VARCHAR(50) NOT NULL, pessoa_estado CHAR(2) NOT NULL, pessoa_ddd CHAR(3), pessoa_telefone CHAR(9) NOT NULL, pessoa_fax CHAR(9), pessoa_celular CHAR(9), CONSTRAINT pessoa_documento_unique UNIQUE (pessoa_documento), CONSTRAINT pessoa_pk PRIMARY KEY(pessoa_id) );

E estou tentando adicionar da seguinte forma:

public Integer addPessoa(Pessoa pessoa) { EntityManager em = JPAUtil.getInstance().getEntityManager(); em.persist(pessoa); em.getTransaction().commit(); em.close(); return pessoa.getPessoaId(); }

Em uma outra entidade eu consegui sem problemas, mas neste caso estou obtendo os eguinte erro:

javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not get or update next value
(...)
Caused by: java.sql.SQLSyntaxErrorException: A tabela/visão 'HIBERNATE_UNIQUE_KEY' não existe.

Alguém teria alguma dica ou sugestão para me dar?

4 Respostas

themasta

kra pode ser o seu mapeamento da chave

tava estudando aqui o hibernate e aconteceu o msmo

to mapeando com xml mas se vc tiver usando annotations acho q deve ser a msma coisa

ao invés de usar
<hibernate-mapping>

    <class name="events.Event" table="EVENT">
        <id name="id">
            <generator class="native"/>
        </id>
        <property name="descricao"/>
    </class>

</hibernate-mapping>
tive q usar
<hibernate-mapping>

    <class name="events.Event" table="EVENT">
        <id name="id">
            <generator class="increment"/>
        </id>
        <property name="descricao"/>
    </class>

</hibernate-mapping>

pra funcionar

A

Eu estou usando annotations dessa forma:

@Id
    @Column(name = "PESSOA_ID")
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer pessoaId;

Para gerar as entidades usei o assistente do NetBeans 6.

A

Consegui resolver o problema :slight_smile:

troquei o
@GeneratedValue(strategy=GenerationType.AUTO)

por
@GeneratedValue(strategy=GenerationType.IDENTITY)

P

Boa tarde

Gostaria de agradecer a dica do Aribas, eu estava com o mesmo problema e consegui resolver com a dia.
Valeu mesmo…

[]'s
Patrícia

Criado 5 de março de 2008
Ultima resposta 20 de mai. de 2010
Respostas 4
Participantes 3