Posted By: Micval (Vsude dobre, v CR taky) on 'CZprogram'
Title:     Jak korektne generovat id - Pg, Hibernate
Date:      Tue Feb 27 16:19:57 2007

Maucta,

mam tu takovej neprijemnej problem s kombinaci Postgres-Hibernate. 
(Predesilam, ze s hibernatem neumim a osobne to neprogramuju, jen se v 
tom stouram.)

Rekneme, ze tohle je psano v souboru Uzivatel.java: 

    @Id
    @Column(name="id_uzivatel", unique=true, nullable=false, insertable=true, 
updatable=true)
    @GeneratedValue( strategy=GenerationType.SEQUENCE, 
generator="customer_id_sequence" )
    @SequenceGenerator( name="customer_id_sequence", 
sequenceName="uzivatel_id_uzivatel_seq", allocationSize=1 )

V databazi je tabulka uzivatel s PK id_uzivatel a sekvence 
uzivatel_id_uzivatel_seq a jsou provazany pres default=nextval.

Ted z chovani aplikace jsem si tak nejak odvodil, ze hibernate si pri startu 
nacte currval sekvence a pak si interne pri insertech pricita jednicku a 
uklada do db sebou generovany id. Potud v poradku, problem je v tom, ze se pri 
tom neupdatuje sekvence a kdyz tam pristoupim jinou aplikaci a udelam insert 
"pres sekvenci", tak tato mi vygeneruje konfliktni id.

Otazka tedy zni, lze hibernatu rict, aby se laskave vykvajz na generovani 
sekvenci a nechal to na databazi?



A nyni neco uplne jineho..

Search the boards