Oracle
 sql >> база данни >  >> RDS >> Oracle

Хибернация на оракул, @GeneratedValue(strategy =GenerationType.AUTO)

Тези пояснения не създават две последователности, а само една. Това правилно/очаквано ли е?

Това е очакваното поведение. Когато използвате @GeneratedValue(strategy = GenerationType.AUTO) , доставчикът на JPA ще избере подходяща стратегия за конкретната база данни. В случая на Oracle това ще бъде SEQUENCE и тъй като не сте посочили нищо, Hibernate ще използва единична глобална последователност, наречена hibernate_sequence .

Дали това е правилно? Е, не знам, зависи от вашите нужди. За всеки случай максималната стойност по подразбиране за последователност на Oracle е 1E+27 или 1,000,000,000,000,000,000,000,000,000. Това е достатъчно за мнозина.

Сега е възможно да се използва GenerationType.AUTO и все още контролира името на последователността, когато базата данни използва последователности:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да пишете в CSV файл с помощта на Oracle SQL*Plus

  2. REGEXP_REPLACE() Функция в Oracle

  3. Функция за списък на ORACLE SQL

  4. java.sql.SQLException:ORA-03115:неподдържан тип мрежови данни или представяне

  5. Oracle SQL:времеви печати в клаузата where