【发布时间】:2013-02-18 11:33:58
【问题描述】:
拥有 Hibernate 和 MSSQL 环境。我遇到了错误: '无法将值 NULL 插入到列 'comment_id'、表 'CHT.dbo.reporter_cmets' 中;列不允许空值。插入失败。 休眠配置:
<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');
它非常适合我。
休眠日志:
调试 hibernate.SQL - 插入 REPORTER_COMMENTS(REPORTERID、COMMENT、COMMENT_DATE、COMMENT_BY)值(?、?、?、?) DEBUG hibernate.jdbc.AbstractBatcher - 准备语句 调试 hibernate.persister.entity.AbstractEntityPersister - 脱水实体:[---.ReporterComments#] 调试 hibernate.type.LongType - 将“15119”绑定到参数:1 调试 hibernate.type.StringType - 将“测试”绑定到参数:2 调试 hibernate.type.TimestampType - 将“2013-03-04 06:13:02”绑定到参数:3 调试 hibernate.type.StringType - 将“dw”绑定到参数:4 DEBUG hibernate.jdbc.AbstractBatcher - 即将关闭 PreparedStatement(打开 PreparedStatements:1,全局:1) DEBUG hibernate.jdbc.AbstractBatcher - 结束语句 DEBUG hibernate.util.JDBCExceptionReporter - 无法插入:[---.ReporterComments] [插入 REPORTER_COMMENTS (REPORTERID, COMMENT, COMMENT_DATE, COMMENT_BY) 值 (?, ?, ?, ?)] java.sql.SQLException:[BEA][SQLServer JDBC Driver][SQLServer]无法将值 NULL 插入列 'comment_id',表 'CHT.dbo.reporter_cmets';列不允许空值。插入失败。
谢谢!
【问题讨论】:
-
既然我想不出任何其他解释,我需要问一下;您确定您从 Java 应用程序连接到与从数据库客户端连接到同一个数据库吗?
标签: java sql-server hibernate