Tyto anotace nevytvářejí dvě sekvence, pouze jednu. Je to správné/očekávané?
To je očekávané chování. Při použití @GeneratedValue(strategy = GenerationType.AUTO)
poskytovatel JPA vybere vhodnou strategii pro konkrétní databázi. V případě Oracle to bude SEQUENCE, a protože jste nic neurčili, Hibernate použije jedinou globální sekvenci nazvanou hibernate_sequence
.
Je to správně? No nevím, záleží na tvých potřebách. Pro každý případ je výchozí maximální hodnota pro sekvenci Oracle 1E+27 nebo 1 000 000 000 000 000 000 000 000 000. Mnohým to stačí.
Nyní je možné použít GenerationType.AUTO
a stále ovládat název sekvence, když databáze používá sekvence:
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="my_entity_seq_gen")
@SequenceGenerator(name="my_entity_seq_gen", sequenceName="MY_ENTITY_SEQ")
private Long id;