我正在开发Spring Boot REST api,现在遇到了一些问题logical problem
。
因此,我拥有一个与实体“ B”具有一对一关系的实体“ A”。最初,实体“ A”是在没有实体“ B”的情况下发布的(->关系为空)。
因此,当我想添加实体“ B”时,我应该简单地将其发布,还是将PUT / PATCH实体“ A”与实体“ B”一起发布?
考虑一个实体的A和B,并采用firstName和lastName字段:
@Entity
public class A {
@Id
private Integer id;
private String firstName;
@OneToOne(mappedBy = "a")
private B b;
}
@Entity
public class B {
@Id
private Integer id;
private String lastName;
@OneToOne
private A a;
}
存储库为:
@Repository
public interface ARepo extends JpaRepository<A,Integer> {
}
@Repository
public interface BRepo extends JpaRepository<B,Integer> {
}
让我们使用@postContruct在A实体中保存一些数据
@PostConstruct
void init(){
A a = new A(1,"ABCD");
aRepo.save(a);
}
保存B实体的控制器:
@PostMapping("/saveB")
public String save(@RequestBody B b){
bRepo.save(b);
return "ok";
}
和json保存B实体:
{“ id”:1,“ lastName”:“ xyz”,“ a”:{“ id”:1}}
以我的理解,如果我们从B存储库中保存实体,则需要使用@PostMapping(插入新行),或者我们可以使用A存储库来保存B实体,因为这里使用@PutMapping是双向映射(已经存在数据库中的A数据,我们需要通过添加B的数据来对其进行更新)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句