Te adnotacje nie tworzą dwóch sekwencji, tylko jedną. Czy to jest prawidłowe/oczekiwane?
To jest oczekiwane zachowanie. Podczas korzystania z @GeneratedValue(strategy = GenerationType.AUTO)
, dostawca JPA wybierze odpowiednią strategię dla konkretnej bazy danych. W przypadku Oracle będzie to SEQUENCE, a ponieważ nic nie określiłeś, Hibernate użyje jednej globalnej sekwencji o nazwie hibernate_sequence
.
Czy to jest poprawne? No nie wiem, to zależy od twoich potrzeb. Na wszelki wypadek domyślna maksymalna wartość dla sekwencji Oracle to 1E+27 lub 1 000 000 000 000 000 000 000 000 000. To wystarczy dla wielu.
Teraz można użyć GenerationType.AUTO
i nadal kontrolować nazwę sekwencji, gdy baza danych używa sekwencji:
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="my_entity_seq_gen")
@SequenceGenerator(name="my_entity_seq_gen", sequenceName="MY_ENTITY_SEQ")
private Long id;