【问题标题】:Getting id after inserting row(Spring boot/JPA)插入行后获取 id(Spring boot/JPA)
【发布时间】:2019-12-01 04:53:57
【问题描述】:
在添加new user 后,我无法从table 获取id。
我有 2 个表,user 和另一个必须与 user table 连接到 third table 的表,其中将包含来自 2 tables 的 id。
为此,我需要second table 的id,如果我理解正确,必须在inserting 行之后收集。
如何实现获取 id?
【问题讨论】:
标签:
java
postgresql
spring-boot
jpa
【解决方案1】:
试试:
retObject = repository.save(retObject );
repository.flush();
retObject.getId(); // get id here
【解决方案2】:
您必须使用@OneToMany 和@ManyToOne 注释定义两个实体之间的关系。然后在“one”一侧从JpaRepository 调用save 方法将设置它的id。然后你只需在关系的“多”端调用save 方法,相关的id 将与数据一起插入。
或者,您可以设置@OneToMany 注释的cascade=CascadeType.ALL 属性,而不是分别在每个实体上调用save,然后您必须只在一个实体上调用save 方法。