Ale mam jeste jeden dotaz: kdyz pouziju naticve a jako databazi mam MS SQL, musi byt prislusny sloupec oznacen jako tzv. identity column?

        Diky

Lukas Barton napsal(a):
Zdravim,

 neni problem v tom, ze to vkladani bezi z ruznych procesu (transakci):
Dle dokumentace je totiz incerement implementovat zhruba tak, ze si Hibernate pred vlozenim zjisti maximum IDcka, to zvetsi o jedna a pod tim ID ulozi novou hodnotu.

Pokud pouzivate vice transakci (vice aplikaci spustenych zaroven) potom se stane to co popisujete. Doporucuji prejit na nejakou vhodnou implementaci HILO nebo pouzivat native.

  Lukas Barton

    Dobry den,
    pouzivam Hibernate 2.1.8 a mam nasledujici mapovani:


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
   "-//Hibernate/Hibernate Mapping DTD//EN"
   "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd";>

<hibernate-mapping>
    <class name="com.rinfo.sdo.entity.SplatkaEntity" table="sdo_splatka">
        <id name="id" column="id_splatka" unsaved-value="0">
            <generator class="increment"/>
        </id>

    <!-- dalsi pro tento dotaz nedulezite atributy -->
    </class>
</hibernate-mapping>


V tabulce sdo_splatka mam unikatni index na policku id_splatka. A stava se mi to, ze cas od casu mi databaze vyhodi chybu, ze nemuze vlozit zaznam s nejakou hodnotou na id_splatka, neb by tim porusila unikatni index. Zapisuji pouze nove vety pri te prilezitosti a vsechny maji atribut id nastaveny na 0.

Netusite, kde delat chybu, pripadne, jestli nema Hibernate chybu v generatoru increment?

    Diky
            Honza





Odpovedet emailem