Java 冬眠+;MSSQL,无法在列中插入值NULL
有冬眠和MSSQL环境。我遇到了错误: '无法将值NULL插入表'CHT.dbo.reporter_comments'的'comment_id'列中';列不允许空值。“插入失败。” 休眠配置:Java 冬眠+;MSSQL,无法在列中插入值NULL,java,sql-server,hibernate,Java,Sql Server,Hibernate,有冬眠和MSSQL环境。我遇到了错误: '无法将值NULL插入表'CHT.dbo.reporter_comments'的'comment_id'列中';列不允许空值。“插入失败。” 休眠配置: <id unsaved-value = "null" type = "int" name="commentId" column="comment_id"> <generator class="identity"/> </id> <property n
<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"/>
它非常适合我
休眠日志:
DEBUG hibernate.SQL-将值(?,,?,?)插入到REPORTER注释(REPORTERID、注释、注释日期、注释依据)中
调试hibernate.jdbc.AbstractBatcher-准备语句
调试hibernate.persister.entity.AbstractEntityTyperMaster-正在脱水的实体:[---.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
调试hibernate.jdbc.AbstractBatcher-即将关闭PreparedStatement(打开PreparedStatements:1,全局:1)
调试hibernate.jdbc.AbstractBatcher-closing语句
DEBUG hibernate.util.JDBCExceptionReporter-无法插入:[---.ReporterComments][插入到REPORTER注释(REPORTERID、注释、注释日期、注释依据)值(?,,,?)]
java.sql.SQLException:[BEA][SQLServer JDBC Driver][SQLServer]无法将值NULL插入到“comment_id”列的表“CHT.dbo.reporter_comments”中;列不允许空值。插入失败
谢谢 您的
comment\u id
列实际上是IDENTITY
列吗?如果不是,那么这就是您的问题,因为Hibernate在使用标识生成器时不会在insert语句中包含comment\u id
列,而是依赖数据库生成值。您的comment\u id
列实际上是identity
列吗?如果不是,那就是你的问题,因为Hibernate在使用标识生成器时不会在insert语句中包含comment\u id
列,依赖数据库生成值。因为我想不出任何其他即时解释,我需要问;您是否绝对确定您从Java应用程序连接到的数据库与从数据库客户端连接到的数据库相同?因为我想不出任何其他直接的解释,我需要问一下;您是否绝对确定从Java应用程序连接到的数据库与从数据库客户端连接到的数据库相同?
insert into REPORTER_COMMENTS (REPORTERID, COMMENT, COMMENT_DATE, COMMENT_BY)
values (15119, 'test', '2013-03-04 05:45:25', 'admin');