@Timrus161

Есть ли способ получить id entity сразу после создания?

У меня есть родительская entity Account у которой есть коллекция Policy
0d0ln.png
Policy-entity:
VWaAd.png
У себя в коде я беру аккаунт по id
затем создаю объект Policy через new и устанавливаю в ссылку ("val policy")
потом я добавляю этот объект в Account.
затем сохраняю это через CrudRepository, получается в объект Policy теперь есть id. На скриншоте дебагера видно, что в коллекции аккаунта id действительно есть, но по ссылке val policy id нет
в коллекции создается полностью новый инстенс полиси (в дебагере видно, что хеш отличается)
6Hjce.png

есть ли какой-то способ иметь id сразу прямо по ссылку в val policy?
либо ещё как-то получить id нового объекта (но не через account.policies.last() и тд)?

например, если это абсолютно новый аккаунт (а не из базы, как в примере выше), то всё создается и в ссылке val policy тоже подставляется id, который уже можно использовать
4V9qG.png
  • Вопрос задан
  • 300 просмотров
Пригласить эксперта
Ответы на вопрос 1
Maksclub
@Maksclub
maksfedorov.ru
Сгенерируйте UUID например в конструкторе при создании новой сущности и все
Зачем призывать ORM для такой простой обязанности? Зачем OBJECT RELATION MAPPIN (вздумайтесь только от термина) для генерации id?

Тем более вижу, что в number он уже юзается

затем сохраняю это через CrudRepository, получается в объект Policy теперь есть id

Id в вашем способе появляется во время persist, именно тогда в UoW генерируется Id (делая лишний запрос в БД), предлагаю не делать как это привыкло большинство, а делать так, как привыкли делать, думая о хороше дизайне — в конструкторе генерируйте
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы