Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Sequência de hibernação no oráculo, @GeneratedValue(strategy =GenerationType.AUTO)


Essas anotações não estão criando duas sequências, apenas uma. Isso é correto/esperado?

Esse é o comportamento esperado. Ao usar @GeneratedValue(strategy = GenerationType.AUTO) , o provedor JPA escolherá uma estratégia apropriada para o banco de dados específico. No caso do Oracle, isso será SEQUENCE e, como você não especificou nada, o Hibernate usará uma única sequência global chamada hibernate_sequence .

Isso está correto? Bem, eu não sei, depende de suas necessidades. Por precaução, o valor máximo padrão para uma sequência Oracle é 1E+27, ou 1.000.000.000.000.000.000.000.000.000. Isso é o suficiente para muitos.

Agora, é possível usar GenerationType.AUTO e ainda controlar o nome da sequência quando o banco de dados usa sequências:
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="my_entity_seq_gen")
@SequenceGenerator(name="my_entity_seq_gen", sequenceName="MY_ENTITY_SEQ")
private Long id;