【发布时间】:2021-11-15 15:15:02
【问题描述】:
我正在尝试为单个表关系(如 orgChart)创建一个简单的映射。 我正在将 Spring Boot 与 Spring 数据和 JPA 一起使用。 这是我的实体:
@Entity
@Table(name = "orgchart")
public class OrgChart {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@ManyToOne
private OrgChart parent;
@OneToMany
@JoinColumn(name = "parent_id")
private List<OrgChart> children = new ArrayList<>();
}
以及添加一些数据的测试代码:
OrgChart orgChart = new OrgChart();
OrgChart orgChart1 = new OrgChart();
orgChartRepository.save(orgChart1);
OrgChart orgChart2 = new OrgChart();
orgChartRepository.save(orgChart2);
orgChart.getChildren().add(orgChart1);
orgChart.getChildren().add(orgChart2);
OrgChart saved = orgChartRepository.save(orgChart);
所以表格创建正确,结构对我来说也不错:
id |parent_id|
---+---------+
361| |
359| 361|
360| 361|
但问题是当我从数据库中获取对象时,我看不到对象中的父字段:
List<OrgChart> children = orgChartRepository.getById(saved.getId()).getChildren()
这里children.get(0).getParent() 始终为空。我究竟做错了什么?我已经尝试了很多方法,这件事有可能实现吗?
谢谢。
【问题讨论】:
标签: spring jpa spring-data-jpa spring-data