gpt4 book ai didi

java - JPA如何获取持久化对象自动生成的ID?

转载 作者:行者123 更新时间:2023-12-01 16:49:31 24 4
gpt4 key购买 nike

我一直在研究 JDBC 和 Spring JPA,让我想到 Spring 如何获取保存对象的 ID。我扩展了 JpaRepository:

interface UserAccountRepository
extends JpaRepository<UserAccount, Integer> {
}

并保存了我的对象:

userAccountRepository.save(new UserAccount(
null,
username,
passwordEncoder.encode(password)
));

MySQL 日志显示这些操作:

2017-04-08T12:54:52.107156Z 78 Query SET autocommit=0

2017-04-08T12:54:52.206061Z 78 Query insert into user_account (password, username) values ('encryptedpassword', 'user')

2017-04-08T12:54:52.206823Z 78 Query commit

2017-04-08T12:54:52.211045Z 78 Query SET autocommit=1

既然插入操作不返回任何东西(或者我错过了什么?)Spring怎么可能知道id而不需要任何额外的查询?

最佳答案

查看source code Hibernate ORM(我猜这是您在 Spring 中使用的),看起来它执行此查询以了解最后插入的 id:

选择last_insert_id()

关于java - JPA如何获取持久化对象自动生成的ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43294514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com