赞
踩
一个存钱罐有很多零钱对吧?
//存钱罐 @Entity @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) public class Pod { @Id @GeneratedValue private Long id; // 一个存钱罐有很多零钱 @OneToMany(cascade = CascadeType.ALL,mappedBy = "pod") @JsonManagedReference //少的一方管理映射,将在测试结果中看出 private List<Coin> coins; } //零钱 @Entity public class Coin { @Id @GeneratedValue private Long id; @ManyToOne //@JoinColumn //抑制ORM建造多余表 @JsonBackReference //设置少的一方管理集合,属性名于mappedBy相对应 private Pod pod; }
还是老规矩写两个Repository,此处省略。
@RestController @RequestMapping("/pod") public class ForeignKeyController { @Autowired PodRepository podRepository; @Autowired CoinRepository coinRepository; @GetMapping("/getPod/{podId}") public Pod podInfo(@PathVariable long podId){ return podRepository.getOne(podId); } @PostMapping("/addPod") public String addPod(@RequestBody Pod pod){ podRepository.save(pod); return "add pod success"; } @PostMapping("/addCoin") public String addCoin(@RequestBody Coin coin){ coinRepository.save(coin); return "add coin"; } }
测试:
//添加一个存钱罐 POST localhost:8080/pod/addPod { } POST localhost:8080/pod/addCoin { "pod":{ "id": 11} } GET localhost:8080/pod/getPod/11 { "id": 11, "coins": [ { "id": 14 } ] }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。