3
respostas

Sequence nextval

Eu tenho uma sequence no Oracle que estou tentando usar para gerar os ids na classe abaixo(minificada):

@Entity
@Table(name = "Carro")
@SequenceGenerator(name = "sequence_CarroId", sequenceName = "Carro_ID", allocationSize = 1)
public class Carro {
    @Id
    @Column(name = "id")
    @GeneratedValue(generator = "sequence_CarroId", strategy = GenerationType.AUTO)
    private Long id;

O id das instancias é sempre incrementado conforme vou gravando mais carros mas o currval da sequence continua sempre com o mesmo valor não importa quantos carros eu insiro. Como faço para usar e atualizar os valores da sequence no id da classe?

CREATE SEQUENCE Carro_ID INCREMENT BY 1 MAXVALUE 9999999999999999999999999999 MINVALUE 1 CACHE 20
3 respostas

Boa tarde Felipe! Ao invés de utilizar currval utilize nextval.

Depois que eu persistir uma linha?

Quando você for inserir os dados na tabela:

insert into tabela (id, campo1, campo2) values (nome_da_sequence.nextval, valor1, valor2);