首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate和ORA-01400:无法插入NULL

问Hibernate和ORA-01400:无法插入NULL
EN

Stack Overflow用户
提问于 2011-05-12 05:16:49
回答 1查看 5.4K关注 0票数 3

我有一个非常简单的场景,一个表,一个自动生成主键的序列:

代码语言:javascript
复制
CREATE TABLE foo (event_id NUMBER(19,0)....
CREATE SEQUENCE event_seq

hibernate映射的一部分如下所示:

代码语言:javascript
复制
...
<id name="id" column="EVENT_ID" type="long">
   <generator class="native">
      <param name="sequence">event_seq</param>
   </generator>
</id>
...

在很长一段时间内没有问题,工作得很好。但最近我得到了这个:

代码语言:javascript
复制
ORA-01400: cannot insert NULL into ("TESTING"."FOO"."EVENT_ID")

这是否意味着甲骨文无法为EVENT_ID?生成序列号,这可能是的一个原因吗?显然,此错误来自64位Oracle,是否与问题有关?删除和重新创建表和序列没有帮助,它只是不想在特定的机器上工作。无论我做什么,我都不能复制这个错误,错误来自一个用户,这几乎是无法达到的。

有什么想法吗?

在32位操作系统上使用驱动程序10.2.0.1.0时,Oracle 10.2.0.1.0 64位检测到了最初的问题。一旦将驱动程序更新到11.2.0.2.0,问题就消失了。这都取决于VM是作为32位或64位系统运行的。

EN

回答 1

Stack Overflow用户

发布于 2011-05-12 12:34:29

Oracle不会自动在表插入上生成序列号。要么将其编码到insert中,要么将其编码为触发器,要么让hibernate执行。

我认为hibernate需要<generator class="sequence">,如果您想要这样做,或者hibernate安装程序已经不再认为您在处理Oracle数据库了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5973572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档