Hibernate 返回自动生成新插入行的 id

Posted

技术标签:

【中文标题】Hibernate 返回自动生成新插入行的 id【英文标题】:Hibernate return auto-generate id of a newly inserted row 【发布时间】:2011-11-18 13:21:03 【问题描述】:

我正在使用 HibernateTemplate 在我的 Spring 应用程序中访问数据库。 HibernateTemplate 中是否有任何方法/方法可以返回自动生成的 id 对于我新插入的行?在我的例子中,自动生成的值是我的表的主键,它被定义为数据库内部的自动增量。

更多信息,我使用 saveOrUpdate() 方法插入数据。

【问题讨论】:

【参考方案1】:

当您使用 saveOrUpdate() 保存对象时,如果是创建操作,对象 id 字段将使用自动生成的 id 进行更新。因此,您可以简单地检索已保存对象的id 属性以获取自动生成的 id。

【讨论】:

您能否扩展您的答案以说明它是如何在 mysql 中执行的?我在探查器中看不到任何选择 LAST_INSERT_ID()(当我连接到 SQL Server 时,我看到了 scope_identity())。 对象对象=新对象; // object.getId() == null saveOrUpdate(object); object.getId() == 插入的 id

以上是关于Hibernate 返回自动生成新插入行的 id的主要内容,如果未能解决你的问题,请参考以下文章

Android Room - 通过自动生成获取新插入行的 id

SQLite数据库中获取新插入数据的自增长ID

插入后选择Hibernate

Android Room - 使用自动生成获取新插入行的 id - MVVM 版本

c#如何返回插入行的ID值

在 Hibernate 中,如何自动检索父 id 并在子插入中将其用作外键?