当前位置: 首页 > 知识库问答 >
问题:

Hibernate没有为Oracle 12c的自动增量列返回正确的值

巫马瀚漠
2023-03-14

我使用Hibernate与Oracle 12c。执行保存操作后,Hibernate不返回数据库中具有序列的主键(自动增量)的正确值。在下面的代码中,UserId列(自动增量)在DB中有一个序列,在DB中保存操作后,值是81,但Hibernate中的返回值是3441。(值只是例子)我的代码:'

User user = new User ();
User.setUserName(userName);
User.setRoleId(roleId);
getHibernateTemplate().save(User);
int userId = User.getUserId();

`

注意:相同的代码与其他数据库运行良好。

共有1个答案

童浩言
2023-03-14

Oracle不处理strategy=GenerationType。自动像其他一些数据库一样。您需要用类似于这两个的内容替换该注释

@GeneratedValue(strategy=GenerationType.AUTO, generator="my_entity_seq_gen")
@SequenceGenerator(name="my_entity_seq_gen", sequenceName="MY_ENTITY_SEQ")

这里也有解释。

 类似资料:
  • 问题内容: 我使用mysql 5.7 我想将联接表的结果串联到单列中。我使用包裹在函数中的函数。这是查询 列包含来自联接表的数据。数据已正确检索,但问题是列未转换为正确的JSON。 如您所见,最后有点“切”。 我也尝试过,但是现在它不能转换为正确的数组。它看起来像字符串太大,不适合列。有办法解决吗? 更新 问题必须出在不适合列的st大小中。我尝试从联接表中选择较少的列,并且它可以正常工作。也许有一

  • 意识到递归是我的弱点之一后,我找到了一个网站,迫使你递归地解决简单问题(https://codestepbystep.com/problem/view/cpp/recursion/digitsSorted?problemsetid=15) 我坚持的一个(digitalsSorted,数字5)如下:调用一个传递数字作为参数的函数。如果该数字中的数字按递增顺序排序,则函数返回True,否则返回Fals

  • 我试图使用CSV文件将用户列表添加到我在租户中设置的AzureAD组。脚本似乎正在工作,但由于某种原因,我的一个If语句中的一个特定写主机没有按预期显示变量数据。我在所有其他写主机中使用相同的变量,它们都可以工作,所以我不确定这里缺少了什么。 如果重要的话,我的CSV看起来像这样: 这是我简化的PS片段。 问题出在 If 语句的写入主机结果上,当用户已在组中时,会发生该语句。 在我的示例中,tes

  • 给定一个类Foo 为什么我用Spock来嘲笑Foo 调用总是返回false? 不确定这是否有区别,但测试是在Groovy/Spock中进行的,而Foo是在Java8中进行的。

  • 我有一个表格和一个表格。包含所有课程的列表,包含教授/协助该课程的志愿者列表。 我想写一个查询,返回没有任何志愿者分配给它的所有课程的列表。这就是正在发生的事情: 以下所有查询都返回 course_id 3 course_id 4 course_id 5 为什么course_id 1(正确)被遗漏,而course_id 3却不是??? 同样的问题,但没有一个解决方案对我有效: 左侧外部连接轨4

  • 问题内容: 我有一个我以前从未见过的问题,猫鼬的findByIdAndUpdate没有在回调中返回正确的模型。 这是代码: 数据库中的原始文档如下所示: 进入的updateObj如下所示: 从回调返回的模型与原始模型相同,而不是updatedObj。如果我查询数据库,它已正确更新。它只是没有从数据库中返回。 这感觉像是一个“愚蠢的用户”错误,但我看不到它。任何想法表示赞赏。 问题答案: 在Mong