Spring JPA - Заполнение отношений данных с помощью популятора репозитория Джексона - PullRequest
0 голосов
/ 09 мая 2020

Я только начал использовать пополнитель репозитория Джексона (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;
}

Вот образец json, который я использую при заполнении некоторых единиц измерения:

[
    {
        "_class": "helium.erp.com.companies.entity.measureunit.MeasureUnit",
        "id": 1,
        "companyId": 1,
        "name": "unit"
    }
]

Очевидно, что простое добавление поля «companyId» к JSON не сработает. Вопрос в том, как заполнить столбец базы данных companyId через поле компании MeasureUnit. Возможно ли это с Джексоном, и как мне написать свой JSON, чтобы достичь sh этого?

...