Ако желанате за да използвате последователности, определено трябва да използвате една от sequence или seqhilo ако искате генератори на алгоритъм hi/lo. Проблемът е, че "изобщо не работи" изобщо не помага да разберете с какъв проблем сте се сблъскали.
За всеки случай, ето фрагмент за sequence генератор:
<id name="id" type="long" column="person_id">
<generator class="sequence">
<param name="sequence">person_id_sequence</param>
</generator>
</id>
И за seqhilo генератор:
<id name="id" type="long" column="cat_id">
<generator class="seqhilo">
<param name="sequence">hi_value</param>
<param name="max_lo">100</param>
</generator>
</id>
Ако искате да проучите защо „изобщо не работи“, предлагам да активирате регистриране на генерирания SQL за да видите какво се случва.
Също така имайте предвид, че PostgreSQL поддържа identity генератор (вижте HB-875
и HHH-1675
), когато използвате колони SERIAL или BIGSERIAL.
Препратки
- Справочно ръководство за Hibernate Core