Aha tak se omouvam, pro GenerationType.SEQUENCE to nelze. Hibernate chybu nenahlasil, ale ulozit entity pod vygenerovanym ID, i kdyz jsem nastavil ID jine. (Chyba byla v tom, ze jsem v prvnim testu nastavil ID nahodou stejne, jako prislo od sekvence).
2010/10/18 Ondra Medek <[email protected]>: > Pro GenerationType.SEQUENCE to lze take, aspon na HSQLDB - Hibernate > si sam nacita definovanou sekvenci pri insert. Oracle jsem nezkousel, > ale rekl bych, ze je to stejne. > > [STDOUT] Hibernate: call next value for SQ_LSN > [STDOUT] Hibernate: /* insert cz.prins.tiger.db.Lesson */ insert into LESSON > ... > > 2010/10/18 "Zdeněk Troníček" <[email protected]>: >> Takhle to funguje pro strategy s hodnotou GenerationType.AUTO. Tj. pokud >> id prideluje framework (Hibernate, EclipseLink,...), lze mu id nadiktovat. >> Pak je jeste nutne upravit hodnoty v tabulce SEQUENCE, protoze jinak mohou >> nasledujici em.persist(...) skoncit chybou "duplicitni hodnota primarniho >> klice". >> Pokud ovsem id prideluje databaze (GenerationType.IDENTITY nebo >> GenerationType.SEQUENCE), tak toto fungovat nebude, protoze sloupec id >> muze byt v databazi deklarovan jako autoincrement a pak si pridelovani >> hodnot ridi sama databaze. >> >> Z. >> -- >> Zdenek Tronicek >> FIT CTU in Prague >> >> >> Ondra Medek napsal(a): >>> Ja mam JPA nad Hibernate, a kdyz u entity nastavim setId(...) a pak >>> em.merge(entity), tak se mi ulozi s tim id, co jsem nastavil. Klice se >>> generuji jen pro nove entity. Funguje pro HSQLB a Oracle. >>> >>> 2010/10/18 Oto Buchta <[email protected]>: >>>> Chci při instalaci nacpat do DB iniciální data a potřebuji, aby >>>> některé záznamy typů s generovanými primárním klíčem měly >>>> předdefinované hodnoty. Nemůžu ale nikde vygůglit jak na to. >>>> Máte někdo nějakou ideu? >>>> Dík. >>>> -- >>>> Oto 'tapik' Buchta, [email protected], http://tapikuv.blogspot.com >>>> >>> >>> >>> >>> -- >>> Ondra Medek >>> >> >> > > > > -- > Ondra Medek > -- Ondra Medek
