sql >> Databáze >  >> RDS >> Oracle

Sekvence hibernace na oracle, @GeneratedValue(strategie =GenerationType.AUTO)

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;


  1. Je možné vynutit kontrolu dat v MySQL pomocí regulárního výrazu

  2. Dotazovací jazyk Neo4j – Cypher

  3. Jak Access komunikuje se zdroji dat ODBC? Část 3

  4. Jak přenést všechny databáze MySQL ze starého na nový server