212 похожих чатов

Такой вопрос, у меня есть какая то доменная модель, есть

репозиторий, сам репозиторий на вход получает доменную модель и на выход должен точно так же ее отдавать. Всё окей, если мы просто накрываем наш UserRepository интерфейсом UserRepositoryInterface и тогда мы можем внутри нашего репозитория сделать метод

create(domainModel) { ... }

внутри метода create замаппать domainModel данные таким образом, что бы они легли на entity внутри нашей бд, после того как произойдёт create нам вернеться не domainModel, а entity из бд, далее мы ее снова перемапаем и из databaseEntity превратим в DomainModel(Всё делаем ручками). Как только я хочу использовать baseRepository, что бы явно не прописывать методы create/delete/find/count ...etc, то всё, вся эта логика идёт лесом, метод

create(domainModel) {}

принимает нашу модельку, но нужен какой то универсальный маппер, причём маппер в 2 стороны, один из domainModel to dbEntity, а второй в обратную сторону, насколько ок будет писать такой общий маппер и юзать его, что бы появилась возможность завезти наследование? Сразу говорю, вариант выкинуть наследование не рассматриваю)

9 ответов

13 просмотров

ммммм..... а почему у репозитория есть метод create?

по описанию звучит как задача гидрации в doctrine или hibernate, ее руками делаете, потому что ORM не используете?

lutik- Автор вопроса
Ale Kashnikaў
по описанию звучит как задача гидрации в doctrine ...

Потому что у меня nodejs он не умеет в доктрину и хибернейт

по сути это обычная схема: dto-entity / entity->dto универсального не найдешь, все ручками, сущность превращаешь в рич модель и через методы наполняешь, в дтошку аналогично через конструктор присваиваешь, если у тебя на беке доктрина, то она qb своим умеет в конструктор передавать указанные свойства сущности в метод ->select('NEW Dto(user.id, user.name)');

lutik- Автор вопроса
Michel Angelo
по сути это обычная схема: dto-entity / entity->dt...

Вот про это понятно, если я явно пишу метод add/delete, то конечно я ручками могу замапать из dto->entity, но если у меня методы add/delete находяться в базовом репозитории и принимает женериками модель доменную

MikroORM умеет

lutik- Автор вопроса
John Doe
MikroORM умеет

Ща займусь тем, что бы тайпорм тоже научился)

lutik
Ща займусь тем, что бы тайпорм тоже научился)

TypeORM странная штука. Там на каждый save, под какпотом, делается select запрос в бд, достаётся сущность еще раз и сравнивается с той версией, которая сохраняется

lutik- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Кстати а покупал кто-нибудь ЭЦП для подписи кода? А то у меня на некоторых компах и ОС иногда SmartScreen винды программу за вирус принимал. Если купить такую ЭЦП и подписыват...
Дмитрий Завгородний
15
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
10
Hello, good time everyone I use Firebase to implement push notification inside the Flutter application and it works, but I don't receive the notification when the application ...
Iman
1
тут по sql есть спецы надеюсь есть таблица большая и там поле DATETIME TTIMESTAMP NOT NULL выборки будут по дням и нужен индекс... какой из индексов будет менее напряжным и ме...
Slym
9
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
какие есть варианты для чтения больших текстовых файлов кроме TBufferedFileStream?
zamtmn
12
Вместо import и library придется писать importlib?
The Bird of Hermes
19
бля хуево, я больше с некст месяца не тим лид) нашу команду поглощает более большая команда( У кого такой же кейс был)?)
Alibek Кulseitov 🇰🇿
9
вот что получается в интерпрететоре, работает и результаты выгляд разумными, но то как выглядит код мне не нравиться, а понять куда двигаться не очень могу, если кому не лень ...
Fedor
42
Карта сайта