Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

GenerationTypes

Não ficou claro o que significa as estratégias GenerationType.AUTO; IDENTITY; SEQUENCE; E TABLE. Quando usar cada uma delas?

Por que no caso do Mysql usamos o IDENTITY ao invés do AUTO? Por que não pode ser AUTO?

No caso de mudarmos de um banco Mysql para um Oracle não daria muito trabalho? Pois teríamos de mudar a anotação em todas as entities para associar as sequences?

1 resposta
solução!

Bom dia Felipe, quando criamos um Entity, significa que a JPA irá cuidar do nosso objeto e por consequência irá criar uma tabela no banco.

Quando trabalhamos com Mysql, nossa PK costuma ser auto_increment, então para a JPA criar a coluna como auto_increment devemos usar IDENTITY.

Já no caso do Oracle, não temos um auto_increment e sim uma sequency, então devemos usar SEQUENCE.

Com relação a troca de banco, caso altera de mysql pra oracle devemos trocar a estratégia em todas as Entities.

Já a estratégia AUTO, significa que você vai deixar a JPA escolher qual estratégia ela vai colocar nas suas PK, então se você estiver usando um banco Oracle e usar AUTO, automaticamente a JPA vai usar a estratégia SEQUENCE, porém se estiver usando mysql, a JPA não irá usar IDENTITY, e sim TABLE. Por esse motivo não é aconselhável usar sempre AUTO.