sql >> Database >  >> RDS >> Oracle

Slaapstand op orakel, @GeneratedValue(strategie =GenerationType.AUTO)

Deze annotaties creëren geen twee reeksen, slechts één. Is dit correct/verwacht?

Dat is het verwachte gedrag. Bij gebruik van @GeneratedValue(strategy = GenerationType.AUTO) , zal de PPV-provider een geschikte strategie kiezen voor de specifieke database. In het geval van Oracle is dit SEQUENCE en aangezien u niets hebt opgegeven, gebruikt Hibernate een enkele globale reeks genaamd hibernate_sequence .

Is dit correct? Nou, ik weet het niet, het hangt af van je behoeften. Voor het geval dat de standaard maximale waarde voor een Oracle-reeks 1E+27 is, ofwel 1.000.000.000.000.000.000.000.000. Dat is genoeg voor velen.

Nu is het mogelijk om GenerationType.AUTO . te gebruiken en controleer nog steeds de naam van de reeks wanneer de database reeksen gebruikt:

@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="my_entity_seq_gen")
@SequenceGenerator(name="my_entity_seq_gen", sequenceName="MY_ENTITY_SEQ")
private Long id;


  1. Een telefoonnummer opmaken in SQL Server (T-SQL)

  2. Hoe maak ik verbinding met een SQL Server 2008-database met behulp van JDBC?

  3. Trigger vs. controlebeperking

  4. IF-THEN-ELSE-instructies in postgresql