Diese Anmerkungen erzeugen nicht zwei Sequenzen, sondern nur eine. Ist das richtig/erwartet?
Das ist das erwartete Verhalten. Bei Verwendung von @GeneratedValue(strategy = GenerationType.AUTO)
, wählt der JPA-Anbieter eine geeignete Strategie für die jeweilige Datenbank aus. Im Fall von Oracle ist dies SEQUENCE, und da Sie nichts angegeben haben, verwendet Hibernate eine einzelne globale Sequenz namens hibernate_sequence
.
Ist das richtig? Nun, ich weiß nicht, es hängt von Ihren Bedürfnissen ab. Nur für den Fall, der standardmäßige Maximalwert für eine Oracle-Sequenz ist 1E+27 oder 1.000.000.000.000.000.000.000.000.000. Das reicht vielen.
Jetzt ist es möglich, GenerationType.AUTO
zu verwenden und immer noch den Namen der Sequenz kontrollieren, wenn die Datenbank Sequenzen verwendet:
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="my_entity_seq_gen")
@SequenceGenerator(name="my_entity_seq_gen", sequenceName="MY_ENTITY_SEQ")
private Long id;