Hibernate Identity列但不是主键

时间:2012-06-16 06:04:16

标签: java hibernate identity

我有一个sqlserver 2008 r2数据表,它有一列autoId int identity(1,1),但它不是主键,另一列varchar(20)就是那个。 问题是:我如何配置hbm文件? bellow是我的配置文件,但是当我尝试保存一个实例时它出错了。 “当IDENTITY_INSERT设置为OFF时,无法在表'acct_info'中为标识列插入显式值。”                                                    

        <property name="autoId" type="int">
            <column name="auto_id" not-null="true" unique="true"  />
        </property>

1 个答案:

答案 0 :(得分:0)

可能有两个原因,要么您在DB中没有足够的IDENTITY INSERT权限,要么在您尝试在休眠和数据库层中设置标识符的机制不匹配。

您可以在hibernate定义文件

中查看您的id生成策略
  1. 在DB中,您可以更改为Set IDENTITY_INSERT to "ON"
  2. 选择不同的生成器类