0

拥有 Hibernate 和 MSSQL 环境。我遇到了错误:'无法将值 NULL 插入列'comment_id',表'CHT.dbo.reporter_comments';列不允许空值。插入失败。休眠配置:

<id unsaved-value = "null" type = "int" name="commentId" column="comment_id">
  <generator class="identity"/>
</id>

    <property name="reporterId" column="REPORTERID" />
    <property name="adminComments" column="COMMENT" />
    <property name="commentDate" column="COMMENT_DATE"/>
    <property name="commentBy" column="COMMENT_BY"/>

'comment_id' 列在 db 中具有 'identity' 属性:如果我使用 db 客户端进行插入:

insert into REPORTER_COMMENTS (REPORTERID, COMMENT, COMMENT_DATE, COMMENT_BY) 
values (15119, 'test', '2013-03-04 05:45:25', 'admin');

它非常适合我。

休眠日志:

ReporterComments] [插入 REPORTER_COMMENTS (REPORTERID, COMMENT, COMMENT_DATE, COMMENT_BY) 值 (?, ?, ?, ?)] java.sql.SQLException: [BEA][SQLServer JDBC Driver][SQLServer]无法将值 NULL 插入列'comment_id',表'CHT.dbo.reporter_comments';列不允许空值。插入失败。

谢谢!

4

1 回答 1

4

您的comment_id专栏实际上是IDENTITY专栏吗?如果不是,那么这就是您的问题,因为 Hibernatecomment_id在使用标识生成器时不会在插入语句中包含该列,而是依赖于数据库来生成该值。

于 2013-03-04T11:39:10.957 回答