Я пробовал так, при сохранении нового объекта не генерируется новый айдишник и падает с тем, что база не принимает id=null
Хмм, а ты ведь инициализировал объект MyEntity.Id перед тем, как сохранять?
MyEntity me = new MyEntity(); me.id = new MyEntity.Id() save() Было что-то вроде такого или же второй строки не было?
Нет,наверное. Это как делается? Смотри, у меня уже есть рабочий код с MyEntity, у который Long id. Там все создаётся без инициализации этого Long id. И таблица тоже существует уже, там primary key на один столбец id. Я думал, что можно просто Long заменить на какой-то более типированный тип.
Спасибо, попробуб проинициализировать
Так смотри. У тебя же колонка value только должна генерироваться, то есть чисто лонговое значение
У меня в коде бывают всякие сервисы, которые принимают айдишники различных энтитей. И бывает неприятная путаница, тип такого: someMethod(Long entityOneId, Long entityTwoId, Long entityTreeId, Long someValue) Очень легко в таком коде перепутать порядок и вставить лонги не от той энтити. В варианте с someMethod(EntityOne.Id id1, EntityTwo.Id id2, EntityTree.Id id3, Long someValue) накосячить сложнее
Весьма странный код, который набор id принимает)
Ну, бывает референсы по айди через микросервисы бегают, а выгрузка и рендеринг всего объекта уже в непосредственно перед отдачей клиенту. Бывает надо в редисе структурку с референсами на энтити хранить. Бывает просто оптимизация.
Ну обычно все обедняется в конкретные операции, под которые можно создать дто. А если так выделить не получается, то что то пошло не так вот проектировании
Обсуждают сегодня