Я пытаюсь сделать обходной путь для этой проблемы, которую я ввел: https://github.com/jhipster/generator-jhipster/issues/9639
Я проделал некоторую работу (я добавил findAllWithEagerRelationships в хранилище), и метод GET работает нормально: я получаювсе мастера и дети.
То, что не работает, и мне нужна ваша помощь, это метод POST: когда я публикую parent
с некоторыми детьми (домашними животными), дети не размещаются с родителемзначит дети потерялись.Подводя итог, можно получить правильный результат:
[
{
"id": 1002,
"name": "Piera",
"pets": [
{
"id": 1051,
"name": "fido",
"species": "barboncino",
"owner": {
"id": 1002,
"name": "Piera"
}
}
]
}
]
, но сообщение работает неправильно:
{
"name": "newName",
"pets": [
{
"id": 1051
}
]
}
newName создано, но питомец 1051 не прикреплен к нему
Я работаю над приложением, сгенерированным с помощью Jhipster:
entity Owner {
name String required
}
entity Pet {
name String required,
species String required
}
relationship OneToMany {
Owner{pet} to Pet{owner}
}
для получения, я добавил эти два метода, которые я скопировал, для формирования отношения manytomany
, и они сработали:
@Query(value = "select distinct owner from Owner owner left join fetch owner.pets")
List<Owner> findAllWithEagerRelationships();
@Query("select owner from Owner owner left join fetch owner.pets where owner.id =:id")
Optional<Owner> findOneWithEagerRelationships(@Param("id") Long id);
Public class Owner implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
@SequenceGenerator(name = "sequenceGenerator")
private Long id;
@NotNull
@Column(name = "name", nullable = false)
private String name;
@OneToMany(mappedBy = "owner")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private Set<Pet> pets = new HashSet<>();
// jhipster-needle-entity-add-field - JHipster will add fields here, do not remove
public class Pet implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
@SequenceGenerator(name = "sequenceGenerator")
private Long id;
@NotNull
@Column(name = "name", nullable = false)
private String name;
@NotNull
@Column(name = "species", nullable = false)
private String species;
@ManyToOne
@JsonIgnoreProperties("pets")
private Owner owner;
// jhipster-needle-entity-add-field - JHipster will add fields here, do not remove
Я ожидаю, что когда я пишу сообщение родителю с несколькими детьми, дети (домашние животные) также публикуются.