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

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

有一个父表批和一个子表块。现在我想要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”,

"parkingBlocks": [],
"availability": {
    "available_spots": 50,
    "occupied_spots": 2,
    "unknown_spots": 0,
    "competitors": 0
}

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

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

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

//THIS IS THE FOREIGN KEY I CREATED MANUALLY
@OneToOne(targetEntity = ParkingLot.class, cascade = CascadeType.ALL, optional = false)
@JoinColumn(name = "lot_id")
private String lot_id;

@ManyToOne(targetEntity = ParkingLot.class, cascade = CascadeType.ALL, optional = false)
private ParkingLot parkingLot;

//accessors
``` `code` 批次id未保存在db中
czq61nw1

czq61nw11#

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

相关问题