Reputation: 309
The ids in my postgresql database are auto-incremental (there are sequences defined in a database). When creating a hibernate mapping files I set the class generator to increment:
<class name="model.Names" schema="public" table="names">
<id name="id" type="int">
<column name="id"/>
<generator class="increment"/>
</id>
However, I keep getting all kinds of errors (null pointer exceptions, org.hibernate.TransactionException: Transaction not successfully started) so I first wanted to make sure that this is the right generator class before debugging and looking for errors elsewhere. I tried sequence (does not work at all, the increment works in some cases). The application is written in JSF 2.0.
Thanks in advance for any suggestions.
Best Regards, sass.
Upvotes: 1
Views: 5218
Reputation: 570295
If you want to use sequences, you should definitely use one of the sequence
or seqhilo
if you want a hi/lo algorithm generators. The problem is that "does not work at all" does not help at all to understand what problem you faced.
Just in case, here is a snippet for the sequence
generator:
<id name="id" type="long" column="person_id">
<generator class="sequence">
<param name="sequence">person_id_sequence</param>
</generator>
</id>
And for the seqhilo
generator:
<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>
If you want to investigate why it "does not work at all", I suggest to enable logging of the generated SQL to see what is happening.
Also note that PostgreSQL does support the identity
generator (see HB-875 and HHH-1675) when using SERIAL or BIGSERIAL columns.
Upvotes: 2