你用的是什么数据库?  length="4"  是什么意思?  好像没这个属性吧!
     有一些数据库是不能够用native的,因为他们使用的自增技术不一样。
  比如,Oracle,我们需要使用sequence,而且要提供sequence的对象名。    具体,请参考 Hibernate的参考手册!

解决方案 »

  1.   

    我用的是sql server 數據庫具體應該怎麼做啊
    我用的是myeclipse里的hibernate
      

  2.   

    使用自增长主键,po对象在save时,id应该为null,即将主键生成交给数据库自己来处理
      

  3.   

    但是我將id設置成int 型,自動+1,就會出現問題。
      

  4.   

    怎麼處理主建是int 型的 問題啊
      

  5.   

    <generator class="assigned"/>  //SQL Server用native主键生成方式有问题的
      

  6.   

    to  silverend(偶尔转转) 
    没听说 //SQL Server用native主键生成方式有问题的你可以这样写:
      <id
                name="id"
                column="ID"
                type="java.lang.Long"
                unsaved-value="0"
            >
                <generator class="native">
                </generator>
            </id>
    SQL Server对应类型是Numeric
      

  7.   

    “SQL Server用native主键生成方式有问题的”——第一次听说,这是一种不负责任的说法。把你的建库脚本和映射文件都贴上来看看吧
      

  8.   

    既然用的是sql server,那么配置成identity,利用sql server主键生成机制就可以了