当用<generator class="native"></generator>时
总是报以下异常信息:
null id in entry (don't flush the Session after     
an exception occurs)改为:
<generator class="increment"></generator>
就好了。
这是为什么?数据库的id是自增长的。
以前别的表的时候用native也是可以的,这次就不行了。
会是什么原因造成的?

解决方案 »

  1.   

    数据库自动增长的话用 <generator class="identity"/>
      

  2.   

    我觉得应该是你自己没有提交事务吧。比如session.commit()
      

  3.   

     Native主键生成方式会根据不同的底层数据库自动选择Identity、Sequence、Hilo主键生成方式  
           特点:根据不同的底层数据库采用不同的主键生成方式。由于Hibernate会根据底层数据库采用不同的映射方式,因此便于程序移植,项目中如果用到多个数据库时,可以使用这种方式 
      

  4.   

    事务不是hibernate自动管理的吗?