一尘不染

休眠问题,jdbc IDENTITY_INSERT设置为OFF

hibernate

当我尝试通过hibernate方式提交到SQL Server时出现JDBC错误

当IDENTITY_INSERT设置为OFF时,无法在表’Report’中为标识列插入显式值

我正在使用由包含以下内容的netbeans生成的映射:

<class name="orm.generated.Report" table="Report" schema="dbo" catalog="DatabaseName">
    <id name="id" type="int">
        <column name="ID" />
        <generator class="assigned" />
    </id>

在我看来,它应该正确地进行身份插入。

关于如何解决此问题的任何想法?

编辑:
一些文档链接,供后人,
http://www.hibernate.org/hib_docs/v3/reference/en-
US/html/mapping.html#mapping-declaration-id-generator

HTTP://www.roseindia .net / hibernate /
hibernateidgeneratorelement.shtml


阅读 260

收藏
2020-06-20

共1个答案

一尘不染

除非将“ IDENTITY_INSERT”设置为“ ON”,否则您不能插入SQL
Server的标识列中。由于生成器类是“已分配”的,因此Hibernate假设您在保存对象之前在Java中为“
id”设置了显式值,并且Hibernate可以将值直接插入数据库中。您需要:

  1. 选择一个不同的生成器类,例如“ native”
  2. 将IDENTITY_INSERT设置为“ ON”
2020-06-20