java—如何在两个表之间建立关联,使子表只共享父表的一个字段作为外键

dauxcl2d  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(626)

有一个父表批和一个子表块。现在我想要lot->lot\u id作为块表的外键。我为lot和block进行了两个api调用get/post。
api/公园/地段和api/公园/街区
当我为块(api/park/blocks)创建一个记录时,它就会被创建。但是当我通过lot进行api调用get(api/park/lots)时,我无法获得child(block)记录
下面是示例json
{“lot\u id”:“1001”,“name”:“newlot”,

  1. "parkingBlocks": [],
  2. "availability": {
  3. "available_spots": 50,
  4. "occupied_spots": 2,
  5. "unknown_spots": 0,
  6. "competitors": 0
  7. }

}
尽管我在get请求中有一个id为'2001'的块,但无法检索该块中的批'1001'
标段实体 code @id私有字符串lot\u id;私有字符串名称=“”;

  1. @OneToMany(targetEntity = ParkingBlock.class,cascade = CascadeType.ALL, orphanRemoval = true)
  2. private List<ParkingBlock> parkingBlocks = new ArrayList<>();

block@id private string block\u id的实体;

  1. //THIS IS THE FOREIGN KEY I CREATED MANUALLY
  2. @OneToOne(targetEntity = ParkingLot.class, cascade = CascadeType.ALL, optional = false)
  3. @JoinColumn(name = "lot_id")
  4. private String lot_id;
  5. @ManyToOne(targetEntity = ParkingLot.class, cascade = CascadeType.ALL, optional = false)
  6. private ParkingLot parkingLot;
  7. //accessors
  8. ``` `code` 批次id未保存在db中
czq61nw1

czq61nw11#

考虑这样做:
在关系中添加@joincolumn到orm知道如何在表之间进行连接。
为了保存两个表,请尝试在块的每个示例中设置lot示例,以便orm检测到两个实体都已连接,并首先插入lot,然后使用块实体中使用的lot的id

相关问题