我刚刚开始使用Jackson存储库填充器(Jackson2RepositoryPopulatorFactoryBean)使用Spring和JPA将一些虚拟数据填充到我的数据库中。它适用于简单表,但是我找不到有关如何处理填充关系的任何信息。这是一个示例:我有一个MeasureUnit表,其Entity看起来像这样:
@Data
@Entity
@Table(name = "measure_units")
public class MeasureUnit {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "name")
private String name;
@Column(name = "description")
private String description;
@ManyToOne
@JoinColumn(name = "company_id")
private Company company;
}
我已经有一个带有关系表Company的表:
@Data
@Entity
@Table(name = "erp_companies")
public class Company {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "name")
private String name;
@Column(name = "description")
private String description;
}
这是我尝试填充某些MeasureUnit时使用的示例json:
[
{
"_class": "helium.erp.com.companies.entity.measureunit.MeasureUnit",
"id": 1,
"companyId": 1,
"name": "unit"
}
]
很显然,仅向JSON添加字段“ companyId”是行不通的。问题是如何通过MeasureUnit的company字段填充companyId数据库列。杰克逊有可能做到这一点吗?我该如何编写JSON来做到这一点?