我现在bo里面主键用的是Integer类型的,我想主键自动增长,用identity这个行么?/**
  * @return id
  * @hibernate.id generator-class="identity"
 */
public Integer getId() {
return id;
}
但是现在报错could not instantiate id generator不能生成ID生成器

解决方案 »

  1.   

    原来用的Oracle数据库,用的是Sequence生成方式,现在数据库迁移用MySQL了,
    MySQL没有Sequence
      

  2.   

    increment<id name="memId" type="java.lang.Integer">
    <column name="mem_id" precision="7" scale="0" />
    <generator class="increment" />
    </id>
      

  3.   

     
      我也遇到了差不多的问题  有些主键生成策略在Mysql中可能不支持 建议使用native
      

  4.   

    一般情况下使用native就够了,很安全很简单,我一般都这么用的。
      

  5.   

    谢谢楼上各位,我用native,identity 都不行,最后用的increment就行了,不知道为什么native,identity 不行,Hibernate对这两个都是支持的啊
      

  6.   

    identity可以
    我用mysql都是用这个
    只是mysql中主键要是auto_increment
      

  7.   

    使用 native  根据不同的数据库自动选择主键生成方式。
      

  8.   

    SQL Server主键自动增长用的是identity,
    mySql则用auto_increment,
    Oracle用的是sequence.
      

  9.   

    应该是native   我也要把oracle换成mysql 楼主透漏点都需要改那些东东啊??
      

  10.   


    <generator class="uuid" /> 
      

  11.   

    oracle换成mysql  需要改的地方就是数据库表的主键的映射,数据库驱动,数据库方言(你的配置文件);
    还有就是表里的内容考到mysql数据库中,
    mysql  数据库中没有NUMBER类型要相应的换成int ,或double;
    mysql  数据库中也没有Varchar2类型,换成Varchar
    其他的你用到再找吧
      

  12.   

    遇到类似问题,不过我用identify不行