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

20 ответов

22 просмотра

Я хотел бы использовать EntityManager для таблицы у которой есть связь с другими таблицами, а для того чтобы его использовать нужно создать DataSource. Мне не нравится стандартный подход TypeORM, который описан в документации для того чтобы сохранить запись, у которой есть связи с другими таблицами: 1) Необходимо сначала сходить в базу и получить объекты, которые связаны с новой записью в бд (сколько связей столько раз нужно и в базу ходить, прежде чем сделать сохранение) При этом надо тянуть ещё дополнительные Repositories в order.service.ts, чтобы получить эти объекты и это всё нарушается принцип SRP 2) Необходимо связать эти объекты между собой 3) И уже потом сохранить По этому я бы хотел использовать EntityManager, чтобы я смог при помощи SQL или QueryBuilder создать новую сущность при этом чтобы у неё были связи с существующими записями из других таблиц и не нарушать принципы проектирования (или хотя бы уменьшить количество зависимостей)

Виктор-Пятаков Автор вопроса
Äртем
Я хотел бы использовать EntityManager для таблицы ...

Как-то все сложно звучит. В нест хорошо прописана чистая архитектура. Поэтому например работа с репазиторием конкретной сущности хорошо ложится в этот контекст. Сам репазиторий, это более высокая надстройка над датасоурс, он внутри себя автоматом подтянет все зависимости перечисленных энтити в коде указанном выше. Ну или если заморачиваться, тогда стоит посмотреть в сторону провайдеров неста и описать нужный синглтон в useFactory. Если я правильно понял запрос

Виктор Пятаков
Как-то все сложно звучит. В нест хорошо прописана ...

Мне кажется, что да, так как мне нужно использовать один объект в разных местах, попробую и этот вариант. Спасибо

Ты всё усложнил, мне кажется. Добавляешь в Entity столбец ID родительской сущности. Допустим у тебя users и posts. В posts добавляешь не только связь к родителю, но и объявляешь его столбцом: userId: тип; После этого ты можешь спокойно создавать посты await em.save(Posts.create({ userId: 123, message: 'fff' }));

Кирилл Сабитов
Ты всё усложнил, мне кажется. Добавляешь в Entity ...

Мне так тоже кажется, я не смог найти способ который бы позволял сохранять сущность со связями, при этом не ходить в БД за тем чтобы получить объекты с которыми будет связь и только когда свяжутся объекты можно будет это всё сохранить. Сейчас попробую этот способ, так как он проще, чем решение которое я пытаюсь изобрести. Спасибо большое

Кирилл Сабитов
Ты всё усложнил, мне кажется. Добавляешь в Entity ...

о, интересный способ. А как typeorm будет понимать что этот userId относится к связи с таблицей users, а не просто отдельная колонка?

Vlad
о, интересный способ. А как typeorm будет понимать...

Никак. У них общее название. Этого достаточно. Остальное сделает СУБД (не даст записать туда несуществующий user ID)

Кирилл Сабитов
Никак. У них общее название. Этого достаточно. Ост...

А если пользователь уже существует, подойдёт ли способ?

Vlad
о, понял. Круто, спасибо

Если что в связях через атрибуты декоратора можно установить название колонок.

Кирилл Сабитов
Если что в связях через атрибуты декоратора можно ...

да да, это знаю. Просто думал что typeorm просто выкинет ошибку, потому что колонка дублируется

Кирилл Сабитов
Да

Понял, ещё раз спасибо

Кирилл Сабитов
Ты всё усложнил, мне кажется. Добавляешь в Entity ...

Я добрался до совета, попутно разбираясь в других проблемах, у меня возник вопрос: А откуда у Posts появляется метод сreate?

Кирилл Сабитов
Он extends от BaseEntity

Пока не понимаю. У меня есть OrderService и для него создаю метод createOrder, Order связан с User как много-ко-одному (у 1 пользователя много заказов). На скриншоте Order это класс, который используется для модели Что мне нужно дописать в мой код, чтобы заработал код из комментария?

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

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

@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Hello, Is iExec also part of the "inception program" or another one ? Would it be a name to qualified the nature of the relationship between iExec and Nvidia? And does Secret ...
Ñïķøłäś
8
Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
any reference of this implementation?
BitBuddha
29
Also, why can’t the community have a vote/ say when it comes to initiatives like buybacks. Isn’t the point of crypto decentralisation? Don’t we deserve input as long term supp...
👨🏽‍🦰
13
Hi guys, any problem with Pulsebrige? Trying to transfer from wETH to ETH. First it tells me to connect my metamask "through mobile app" not desktop. Then I did and confirmed ...
Snowflakecrypto
13
Карта сайта