我一直在玩JDBC和Spring JPA,让我想到的是Spring如何获取保存对象的ID。 我已经扩展JpaRepository:JPA如何获取持久化对象的自动生成ID?
interface UserAccountRepository
extends JpaRepository<UserAccount, Integer> {
}
救了我的对象:
userAccountRepository.save(new UserAccount(
null,
username,
passwordEncoder.encode(password)
));
MySQL的日志显示了这些操作:
2017-04-08T12:54:78 52.107156Z查询SET autocommit = 0
2017-04-08T12:54:52.206061Z 78将查询插入到user_account(密码,用户名)值('encrypted密码”, '用户')
2017-04-08T12:54:78 52.206823Z查询提交
2017-04-08T12:54:78 52.211045Z查询SET自动提交= 1
既然插入操作没有返回任何东西(或者我错过了什么?),Spring怎么可能知道这个id而没有任何额外的查询呢?
https://docs.oracle.com/javase/8/docs/api/java/sql/Statement.html#getGeneratedKeys-- –
春犯规得到任何东西。 Spring不做JPA。 JPA提供者执行JPA –