Quando utilizamos o banco de dados Oracle por exemplo, podemos utilizar uma estratégia de SEQUENCE para obter o ID da entidade.
Vamos criar um exemplo de entidade que utiliza uma SEQUENCE para gerar o id referente a chave primaria da tabela, abaixo vamos criar a sequência USUARIO_SEQ:
A seguir vamos criar a entidade Usuario que irá utilizar está sequence para gerar o id.
A anotação @SequenceGenerator vai indicar qual a sequence do banco, qual o valor inicial e a quantidade que essa sequence é incrementada.
Propriedades | Descrição |
---|---|
name | informa o apelido da sequence, exemplo “USU_SEQ”. |
sequenceName | informa o nome da sequence criada no Banco de Dados, exemplo: “USUARIO_SEQ”. |
initialValue | informa o valor inicial da sequence, exemplo 1. |
allocationSize | informa a quantidade que será incrementada na sequence, o default é 50, neste exemplo definimos que será incrementado de 1 em 1. |
A anotação @GeneratedValue nesse caso está usando a estratégia de SEQUENCE, então ele vai procurar a sequência que tem o apelido “USU_SEQ” e faz um consulta no banco para pegar seu resultado:
Propriedades | Descrição |
---|---|
strategy | informa o tipo de estrategia que será utilizado, exemplo GenerationType.SEQUENCE. |
generator | informa o apelido da sequence, exemplo “USU_SEQ”. |