我正在研究Spring REST API,并试图映射出一个新对象以供最终用户使用。
对象是项目对象,可以具有用户先前在网站的admin部分中定义的字段列表。这些字段中的每个字段都可以具有一个特定于项目对象本身的值。我想知道是否有一种方法可以定义辅助表,并在连接的对象中使用它来实现这一目的。
例如,我有一个看起来像这样的项目对象:
@Entity
@Data
public class Project {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
@ManyToMany
private Set<ProjectField> fields;
}
还有一个如下所示的项目字段对象:
@Entity
@Data
public class ProjectField {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
private String value;
}
我希望有某种方法可以使用@SecondaryTable批注,或者可能有一些针对我的用例的特定方法,以便能够根据其上方的项目ID填充项目字段的value属性。
例如这样的东西:
@Entity
@Data
@SecondaryTable(name = "projectFieldData", pkJoinColumns = @PrimaryKeyJoinColumn(name = "projectId"))
public class Project {
private int id;
private String name;
private Set<ProjectField> fields;
}
@Entity
@Data
public class ProjectField {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
@Column(name="foo", table = "projectFieldData")
private String value;
}
Spring或JPA是否提供任何方法在已连接的对象内使用父对象的ID,以便我可以加入另一个属性。
就我而言,有一种方法可以访问“项目字段”对象中的“项目对象ID”。