在近期的项目维护工作中,时常出现主键重复的异常。经过一系列资料的查询之后,发现时hibernate映射文件配置问题。
mysql提供主键“自动增量”的配置,指定该类型的主键,mysql能够自动加一。
在hibernate映射文件中,关于主键的配置不能是
<generator class="increment"></generator>,配置为increment的话,自增是由hibernate控制,有可能出现重复的主键。
如果要使用mysql自己的自增1主键的话,需要将主键配置为:
<generator class="native"></generator>
或<generator class="identity"></generator>
问题解决!