Postgre数据库表中,使用serial自增型字段作为数据表的主键时,Hibernate在插入数据时会报“{"could not get next sequence value[SQL: select nextval ('hibernate_sequence')]"}”的异常。
得知错误在:SQL: select nextval ('hibernate_sequence'),从提示可知得到hibernate_sequence的下一个值失败,原来是数据库中不存在hibernate_sequence序列。
解决办法:
为数据表新建一个sequence,如userid_sequence,然后在Hibernate映射配置文件中设置主键:
<id name="UserId" column="UserId" type="int" >
<generator class="native">
<!-- 与创建的mytable_sequence对应 -->
<param name="sequence">userid_sequence</param>
</generator>
</id>