我有 3 个实体:
- Poi 实体
- 一个 PolygonPoi 实体,它通过联合继承类型从 Poi 实体(也是 @Id)继承。
- 以及通过多对关系(1-PolygonPoi N-Coordinates)连接到多边形 poi 的坐标实体
我的问题是我无法为 Coordinate 实体获取正确的外键(我只得到空值)。坐标应使用 Poi 的 Id。我该如何解决 ??
以下是提到的三个实体类:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Poi
{
@Id
@Column(name = "NAME")
protected String name;
@Entity
public class PolygonPoi extends Poi
{
@OneToMany(mappedBy = "poi", cascade={CascadeType.ALL})
protected List<Coordinate> coordinate = new ArrayList<Coordinate>();
@Entity
public class Coordinate
{
@Id
@GeneratedValue
private long id;
@ManyToOne
Poi poi;
此外,最好完全在数据库中使用 PolygonPoi,因为它除了与坐标的关系之外不包含任何信息。
E:
这是我的表格的样子:
SELECT * FROM POI;
NAME CREATEDBY
pp0 1
SELECT * FROM POLYGONPOI;
NAME
pp0
SELECT * FROM COORDINATE ;
ID LATITUDE LONGITUDE POI_NAME
1 |30.030000686645508 |50.29999923706055 |null
2 |31.030000686645508 |51.29999923706055 |null
3 |31.030000686645508 |50.29999923706055 |null