Hiberate问题,jdbc IDENTITY_INSERT设置为OFF

Jam*_*hon 9 sql sql-server hibernate jdbc

当我尝试通过hibernate提交到SQL Server时,我收到JDBC错误

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

我使用的netbeans生成的映射包含,

<class name="orm.generated.Report" table="Report" schema="dbo" catalog="DatabaseName">
    <id name="id" type="int">
        <column name="ID" />
        <generator class="assigned" />
    </id>
Run Code Online (Sandbox Code Playgroud)

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

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

编辑:
一些文档链接,供后人,
http://www.hibernate.org/hib_docs/v3/reference/en-US/html/mapping.html#mapping-declaration-id-generator
HTTP://www.roseindia达网络/休眠/ hibernateidgeneratorelement.shtml

cli*_*ers 9

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

  1. 选择不同的生成器类,例如"native"
  2. 将IDENTITY_INSERT设置为"ON"