Ao subir o servidor JBoss o seguinte error ocorre :
HHH000299: Could not complete schema update: org.hibernate.MappingException: org.hibernate.dialect.OracleDialect does not support identity key generation
Ao subir o servidor JBoss o seguinte error ocorre :
HHH000299: Could not complete schema update: org.hibernate.MappingException: org.hibernate.dialect.OracleDialect does not support identity key generation
Opa, vc precisa usa a estratégia sequence para gerar a chave primária.. não vai rolar o identity no oracle.
Olá, verifiquei que além da Sequence, eu precisaria criar uma Trigger, Correto ?
Porém para que eu crie uma Trigger, eu preciso saber os dados da tabela, como no exemplo:
-- Cria a Sequence dept_seq
CREATE SEQUENCE dept_seq START WITH 1;
-- Cria a Trigger <dept_bir> para a Sequence <dept_seq>,
CREATE OR REPLACE TRIGGER dept_bir
-- Da tabela <departments> para a coluna <id>
BEFORE INSERT ON departments
FOR EACH ROW
BEGIN
SELECT dept_seq.NEXTVAL
INTO :new.id
FROM dual;
END;
/
Até então, para o exercício proposto, eu não sei qual tabela e colunas no ele está tentando criar, eu precisaria saber disso...
Porém, vem outra dúvida, quando eu subo o Servidor, eu vejo que o JPA tenta criar a tabela, caso eu crie e gera a Sequence e Trigger, ele não daria problema na hora de subir pois já existiria essa tabela na base ???
Não daria... Se tiver configurado pra create drop, ele tentaria dropar a tabela. E não sabia que precisaria dá trigger, coisa do Oracle? No pg tb eh com sequência e sem essa necessidade.
Pelo que eu entendi precisa da Trigger porque a Trigger que relaciona: Sequence à Tabela/Coluna que terá o auto complete, sem ela, acredito que não tem como o JPA saber que para aquela Tabela/Coluna existe uma Sequence criada.
Porém a dúvida é , como eu vou criar essa Trigger ? tenho a tabelas e colunas que o JPA está tentando criar ??
O que vc precisa saber é: o Oracle precisa de trigger pra incrementar a sequence? Eu acho que não. O hibernate pede o next pra sequence e já foi. Em relação as tabelas, eh só pedir pro hibernate não criar. Tem uma configuração chamada hbm2ddl.auto, procura ela e apaga.
Criando as anotations :
@Id
@SequenceGenerator( name="AUTOR_SEQUENCE_GENERATOR", sequenceName="SEQ_AUTOR_ID" )
@GeneratedValue(strategy= GenerationType.SEQUENCE, generator="AUTOR_SEQUENCE_GENERATOR")
para cada um dos id's dos model's e criando as Sequence para cada anotation, funcionou