Mam podmiot hibernacji z identyfikatorem skonfigurowany jako@GeneratedValue ze strategią = GenerationType.AUTO generuje wartość powtórzony po restarcie
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
Tworzenie nowych elementów działa OK w pierwszym biegu. Ale jeśli ponownie uruchomię aplikację i pobierze z powrotem rekordy, następnym razem, gdy spróbuję utrwalić tę encję, hibernate spróbuje użyć tego samego identyfikatora wygenerowanego, gdy aplikacja nie zostanie ponownie uruchomiona.
pojawia się błąd poniżej, a gdy uruchomiony z opcją śledzenia, byłem w stanie zobaczyć, że identyfikator został ponownego użycia
*Hibernate: insert into org_myEntity (entitiyJID, entitityName, id) values (?, ?, ?) org.hibernate.util.JDBCExceptionReporter
SQL Error: 20000, SQLState: 23505 org.hibernate.util.JDBCExceptionReporter The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'SQL120725164357680' defined on 'TABLE_NAME'. org.hibernate.event.def.AbstractFlushingEventListener
Could not synchronize database state with session org.hibernate.exception.ConstraintViolationException: could not*
Nawiasem mówiąc, używam hibernacji 3.3.2.GA, javax .persistance 2.0.0 i baza danych Derby 10.5.1
Czy ktoś ma pojęcie, co może być nie tak w moim pokoleniu i jak mogę to naprawić?
To było trochę trudniejsze, ale twoja uwaga do "hibernate.hbm2ddl.auto" zadzwoniła dzwonkiem. W końcu miałem jeden plik właściwości projektu z hibernate.hbm2ddl.auto ustawionym na create-drop i SessionFactory jednego z pakietów z hibernate.hbm2ddl.auto ustawionym na aktualizację. To spowodowało, że moje dane dotyczące tego pakietu były przechowywane w bazie danych, ale iteratory mają zostać ponownie uruchomione. Obrigado pela dica = D – Thomas