Тези пояснения не създават две последователности, а само една. Това правилно/очаквано ли е?
Това е очакваното поведение. Когато използвате @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;