Generați ID-ul înainte de inserare, astfel încât conduce ipotecare pot fi create

Fixkamo-shared-library
Expediere
19 august 2026 la 02:12 UTC
Autor
Kamo
Comite
25140e0

Crearea unei piste pe o piață ipotecară a eșuat cu "Database table LEADS does nu există. Vă rugăm să rulați KamoInitializerApp pentru a crea schema." Masa a fost Acolo. Adevărata eroare a fost: introduceți în piste (...) valori (...) returnând lead id ERROR: coloana "Lead id" nu există (SQLState 42703) coloana ID conduce "este UID. Lead id este LeadClaimMortgage @PrimaryKeyJoinColumn. Hibernate 6.2 construiește insert masa rădăcină ... clauza de retur Coloana cheie a subclasei, aşa că numai subclasa s-a rupt -- un simplu plumb a fost întotdeauna bine, motiv pentru care exact piețele ipotecare nu a reușit. Reproduse în izolare; Hibernate 6.5 face aceeași cartografiere corect, dar Spring Boot 3.1.5 pini 6.2.13 pe serviciile care conduc acest lucru. AppMortgage (APP UID contra APLICAtions) a purtat defectul identic, nehit. Fix ambele prin aducerea ID-ul de la unic rowid() ÎNAINTE de inserare. Hibernat atunci nu are nimic de citit înapoi și emite nici o clauză RETURNARE la toate, care este corect pe 6.2 și 6.5 deopotrivă. Aceeaşi secvenţă din care se trage coloana implicită. ID-urile rămân peste 2^53 și să păstreze serializarea ca siruri de caractere; implicit sunt neatinse și încă servesc SQL brut. Nici o schimbare schema - kamoInitializer nu trebuie să ruleze. Reînnoirea coloanei cheie pentru copii pentru a se potrivi cu rădăcina a fost alternativa evidentă și nu este viabil: ddl-auto kamoInitializer rulează înainte de fiecare alergător de migrație și ar adăuga o coloană duplicat în primul rând, iar tabelul pentru copii PRIMARY KEY stă pe coloana respectivă, pe care YugabyteDB nu o poate repune în aplicare. @SequenceGenerator on kamo unique rowid seq este, de asemenea, nesigur - ar face secvența un exportabil că DDL-auto ar putea crea START CU 1 împotriva unei baze de date lipsește shim, predarea ID-uri sub 2^53.

Toate modificările

Ca ceea ce vezi de transport maritim?

Fiecare dintre aceste actualizări aterizează automat în spațiul de lucru. Începe gratuit și urmăriți-l crească săptămână după săptămână.

Pornește gratuit pentru totdeaunaVezi prețurile