Ако желанате за да използвате последователности, определено трябва да използвате една от 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