【问题标题】:How is hibernate getting the newly inserted record primary key on session.save(object)hibernate 如何在 session.save(object) 上获取新插入的记录主键
【发布时间】:2020-01-10 09:28:00
【问题描述】:

我知道当我们休眠session.save(object)时,我们可以用object.getId()获取新插入记录的主键。我想了解hibernate是如何获取这个id的。我想使用普通的 SQL 查询而不是使用休眠来实现相同的目的。

数据库服务器是 MySQL。

【问题讨论】:

  • 这取决于您的实体使用的 ID 生成器。如果您想使用 JDBC,我认为您应该忘记 Hibernate,并考虑您希望如何生成这些 ID:序列?一个UUID?一个自动递增的列?还有什么?

标签: java mysql sql hibernate


【解决方案1】:

我同意@JB Nizet 关于生成的观点:这取决于您的注释,并且无论如何,id 在提交阶段而不是之前分配给您的 bean,因此持久提供者必须从数据库中读取新生成的 id。

许多数据库都提供了一种机制来执行所需的操作。 MySQL 提供了一个函数LAST_INSERT_ID()。更多详情herethere

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-07
    • 2012-09-02
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    相关资源
    最近更新 更多