困扰多日的问题!严重: ORA-01400: 无法将 NULL 插入
控制台报错如下:
Hibernate:
insert
into
JMJL.MAP_T_RELAY_STATION
(DATA_GUID, RELAY_STATION_NAME, X, Y)
values
(?, ?, ?, ?)
2011-5-3 16:08:53 org.hibernate.util.JDBCExceptionReporter logExceptions
警告: SQL Error: 1400, SQLState: 23000
2011-5-3 16:08:53 org.hibernate.util.JDBCExceptionReporter logExceptions
严重: ORA-01400: 无法将 NULL 插入 ("JMJL"."MAP_T_RELAY_STATION"."RELAY_STATION_ID")
大家看看怎么回事?
数据库驱动不会有问题的,估计是设置id的生成方式问题。但是设成 native 也不顶用。
如果设置成sequence的话,不知道sequence 的name值。公司原来的数据库,不能随便更改!
------解决方案--------------------RELAY_STATION_ID 字段有非空约束吗? 这个约束不能改,或者你一定要插NULL进去吗?
------解决方案--------------------公司难道不让看数据库吗?
你把它换成sequence后,然后在表的映射文件下加入 <param name="sequence">S_USER </param>(S_USER为序列的名称)
------解决方案--------------------你是数据库中有约束(非空约束),你debug一下,看看,你接收的值是不是都有值
------解决方案--------------------断点一下。。
------解决方案--------------------
看obj相应的字段是否为空,感觉好神奇
------解决方案--------------------公司应该装了plsql developer 吧, 你进去之后,找到Sequence,
下面有很多已经建好的序列, 一般序列的命名都是有规范的,你找到
与你表相对应的序列就好了啊,你不会连表都不知道吧?