当前位置: 首页 > 面试题库 >

如何使用Hibernate在MySQL中获取自动增量主键值

尉迟明辉
2023-03-14
问题内容

我正在使用Hibernate访问MySQL,并且有一个带有自动递增主键的表。

每次我在表中插入一行时,都不需要指定主键。但是,在插入新行之后,如何立即使用hibernate获取相对主键?

或者我可以只使用jdbc来做到这一点?


问题答案:

保存hibernate实体时,id将为您填充该属性。所以如果你有

MyThing thing = new MyThing();
...

// save the transient instance.
dao.save(thing);

// after the session flushes, thing.getId() should return the id.

实际上,我几乎总是assertNotNull在测试中对持久实体的ID进行一次操作,以确保保存有效。



 类似资料:
  • 问题内容: 是否可以自动增加非主密钥? 表“ book_comments” 该表上将没有其他索引。但是,我想使列自动递增,以便可以轻松创建另一个表: 表格“ book_comments_votes” 用户将只能对每个书评进行一次投票。该表通过主键强制执行此规则。 题: 是否可以自动增加非主键-例如,自动增加表“ book_comments”中的列? 替代方案,讨论: 如上所述,我想这样做是为了简化

  • 问题内容: 如何在MySQL中获取下一个ID以将其插入表中 问题答案: 使用从您的SQL查询。 要么 您也可以使用PHP来获取它。

  • 问题内容: 我有多个结构相同的数据库,有时会在其中复制数据。为了保持数据完整性,我使用两列作为主键。一个是数据库ID,它链接到包含有关每个数据库的信息的表。另一个是表键。它不是唯一的,因为它可能有多个行,且此值相同,但database_id列中的值不同。 我打算将这两列变成一个联合主键。但是,我也想将表键设置为自动递增-但基于database_id列。 EG,使用以下数据: 如果我要添加包含dab

  • 问题内容: 我有这样的桌子 我想增加我的id字段,例如…等。我该怎么做?请让我知道任何可能的方式。 问题答案: 如果您确实需要此功能,则可以借助单独的表进行排序(如果您不介意的话)和触发器来实现您的目标。 桌子 现在触发 然后您只需将行插入到table1 然后你会 这是 SQLFiddle 演示

  • 你们能帮帮我吗,我的主键无法自动递增,我的表名是books,我想自动递增的列是serial_no,这是主键。 这是五月按钮,当我输入所有数据时,它将被提交到我的台本上 顺便说一句,我找到了另一种方法,抓取我的表并重建它,然后将代码放入create table脚本中 SERIAL_NOINTEGER默认AUTOINCREment:开始1增量1不是空主键

  • 问题内容: 我在Flask微框架中使用Sqlite3,但是这个问题仅涉及Sqlite方面。 这是代码片段: 该表还有另一列,具有以下属性: , 如果两个人同时写,上面的代码可能会产生错误。 交易可能会很混乱。在Sqlite中,是否有一种整洁的内置方法可以返回执行INSERT之后生成的主键? 问题答案: 你这样做的方式是有效的。如果上面的片段被两个脚本同时执行,则不会有问题。返回调用它的连接的最新I