Witajcie,
Pierwszy raz musze postawić bazę na Oracle i mam drobne problemy z generatorem. W bazie stworzyłem tabele i sekwencje, bez trigerów:
Sekwencja:
CREATED 15/05/27
LAST_DDL_TIME 15/05/27
SEQUENCE_OWNER CRM
SEQUENCE_NAME SLOWNIKI_SEQ
MIN_VALUE 1
MAX_VALUE 999999999999999999999999999
INCREMENT_BY 1
CYCLE_FLAG N
ORDER_FLAG N
CACHE_SIZE 20
LAST_NUMBER 21
Oto kod w hibernacie:
@Id
@Column(name = "ID")
@SequenceGenerator(name="PK",sequenceName="SLOWNIKI_SEQ",allocationSize=1, initialValue = 1)
@GeneratedValue(strategy = GenerationType.AUTO, generator="PK")
private int id;
Całość działa jednak powoduje pewne ograniczenie. Jeśli zawsze będę dodawał rekordy przez hibernate jest ok, jeśli jednak dodam kolejny rekord bezpośrednio w bazie mam problem z dodaniem kolejnego rekordu prze hibernata.
unique constraint (CRM.SLOWNIKI_PK) violated
Domyślam się że nr sekwencji który widzi hibernate dubluje się z tym dodanym ręcznie. A jako że to klucz główny hibernate nie chce dodać rekordu. Jak ominąć to organicznie chciałbym mieć możliwość dodawania rekordów ręcznie. Przy dodawaniu ręcznie rekordu zwiększać nr sekwencji?