Questão de entrevista de emprego!
IDENTITY: Talvez o mais usado, quando utilizamos IDENTITY o Hibernate utilizará a geração AUTO_INCREMENT para SQL/MySQL, já para o Postgres faz uso do tipo SERIAL.
SEQUENCE: Se permitido pelo banco, utiliza sequencias (sequences) para gerar a chave primária, do contrário, automaticamente será utilizado o padrão TABLE. (https://lnkd.in/d8x5_3bx) - podemos customizar esse generation com nome e valores da sequencia. Atualmente o generation type recomendado pelo Hibernate.
Podemos definir o gerador das sequências através da anotação @SequenceGenerator
AUTO: Default. Se nenhum valor for especificado para o GenerationType, este será utilizado. A implementação definirá que estratégia utilizar. No caso do Hibernate com JPA, seria a SEQUENCE para Postgres e oracle e TABLE para MySQL.
TABLE: Funciona em todos os bancos relacionais. Porém, quando fazemos uso dela o Hibernate precisa necessariamente uma outra tabela para gerar e guardar as chaves primárias. Por motivos de locks e lentidão ao escalar a aplicação, é bom evitar o uso de TABLE.
Mais detalhes e fontes:
Top comments (0)