Сопоставление Spring Hibernate со встроенным идентификатором - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть следующие отношения:

FirstEntity {
    List<SecondEntity> secondEntities;
}

SecondEntity{
    @EmbeddedId
    EmbeddedIdEntity embedded;
    List<ThirdEntity> thirdEntities;
}

@Embeddable
EmbeddedIdEntity {
    long firstEntityId;
    String someValue;
}

Теперь я изо всех сил, как мне сопоставить все эти объекты так, чтобы, когда я делаю

FirstEntity firstEntity = new FirstEntity();
firstEntity.setSecondEntities(secondEntities);
firstEntityRepository.save(firstEntity);

Сохранения FirstEntity и таблицу SecondEntity заполнено с идентификатором FirstEntity

1 Ответ

0 голосов
/ 02 апреля 2020

Самое простое решение - использовать аналог к ​​@OneToMany:

FirstEntity {

    @OneToMany(mappedBy = "firstEntity", cascade = CascadeType.PERSIST) // Cascades persisting of FirstEntity to secondEntities
    List<SecondEntity> secondEntities;
}
@Embeddable
EmbeddedIdEntity {

    @ManyToOne
    FirstEntity firstEntity;
    String someValue;
}

и сохранить их, используя что-то похожее на

FirstEntity firstEntity = new FirstEntity();
firstEntity.setSecondEntities(secondEntities);
firstEntityRepository.save(firstEntity);
firstEntity.getSecondEntities().forEach(secondEntity -> secondEntity.getEmbedded().setFirstEntity(firstEntity); // Set the counter-relationship on the managed entities
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...