Spring JPA-使用Jackson存储库填充器填充数据关系

时间:2020-05-09 14:29:11

标签: java json spring hibernate jackson

我刚刚开始使用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来做到这一点?

0 个答案:

没有答案