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

Ребята, которые без орм пишут, а есть ли какой-то способ

смаппить связь one-to-many на структуру или всегда необходимо делать доп.запрос? с помощью sqlx какого-нибудь или какой-либо другой либы

type User Struct {
Id int64
Name string
Posts []Post // one to many
}

26 ответов

20 просмотров

вы определитесь, вам нужен ОРМ или нет. Потому что то, чего вы хотите - это основной функционал ОРМ и есть

Ilya- Автор вопроса
Владимир Гришин
вы определитесь, вам нужен ОРМ или нет. Потому что...

в целом для моих задач ОРМ как правило избыточен, но иногда необходимо написать метод, возвращающий, например, пользователя и список его адресов. после большого кол-во времени использования ОРМ в других языках, первое, что приходит на ум - как раз подход ОРМ))

Ilya
в целом для моих задач ОРМ как правило избыточен, ...

посмотрите все же в сторону gorm, это скорее query builder, чем прямо ОРМ, скорее всего, вам зайдет

Ilya
в целом для моих задач ОРМ как правило избыточен, ...

вообще забавно. в ряде случаев люди приходят к мысли. что их задачи орм уже не тащит. (селекты)

Ilya- Автор вопроса
мιlιтѕĸa
вообще забавно. в ряде случаев люди приходят к м...

так тут одно из двух: либо твои задачи слишком простые для того, чтобы использовать орм (какой-нибудь простой селект с маршалингом в структуру), либо слишком сложные (34575934857 джоинов)

Ilya
так тут одно из двух: либо твои задачи слишком про...

Что плохого в ОРМ при сложном запросе, если с ним билдер справляется? Никакого оверхеда то на создание запроса нет.

то что вам нужно называется eager loading и ORM именно делает обычно несколько запросов

Dmitry 🦆
Что плохого в ОРМ при сложном запросе, если с ним ...

когда джойнов прям оч много обычным sql проще

мιlιтѕĸa
когда джойнов прям оч много обычным sql проще

Это потом поддерживать надо. Мне приятнее, когда инструмент при рефакторинге связывает элементы запроса с кодом. Вот на порядки приятнее)

Ilya- Автор вопроса
c
то что вам нужно называется eager loading и ORM им...

последнее понимаю. но не понимаю смысла использования орм в таком случае, если либы вроде sqlx с маппингом в структуры справляется. ради queryBuilder’а?

Ilya
последнее понимаю. но не понимаю смысла использова...

sqlx не сходит за вас в таблицы, если одна часть структуры лежит в одной таблице, а другая в другой

Ilya- Автор вопроса
c
sqlx не сходит за вас в таблицы, если одна часть с...

если между таблицами есть связь - то можно сделать так, что сходит, нет? если это, конечно, не one-to-many, как я описывал ранее

c
sqlx не сходит за вас в таблицы, если одна часть с...

То есть если я хочу писать sql руками, но чтобы структуры сами мапились в джоинах, мне придётся тащить gorm или на каждый запрос делать свой тип и руками джойнить данные в коде?

Nikita Krasnikov
Загугли sqlc и не парься

Ну это кодогенерация, такого тоже хотелось бы избежать

Ilya
если между таблицами есть связь - то можно сделать...

sqlx маппит строки в структуры это все что он делает

Михаил Макарычев
Ну это кодогенерация, такого тоже хотелось бы избе...

Лол, это наоборот прекрасно, руками ниче делать не надо

Nikita Krasnikov
Лол, это наоборот прекрасно, руками ниче делать не...

Есть что-то внутри меня, что отталкивает кодогенерацию. Отчасти из-за того, что я только погружаюсь в го, поэтому этот механизм мне чужд

Михаил Макарычев
Да уж придётся, видимо

У меня доклад недавно был на эту тему https://youtu.be/jkKwtNOR8C0

Emil Sharifullin
У меня доклад недавно был на эту тему https://yout...

Блин, Контур тоже на го пишет? Там же шарписты раньше были (

Михаил Макарычев
Блин, Контур тоже на го пишет? Там же шарписты ран...

Я в контуре на го пишу практически один) Кстати, ко мне в команду в Казани нужен разработчик)

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта