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

Приветствую Начал изучать работу с базой (jpa + hibernate + postgresql)

и в силу специфики большое количество запросов связаны с JOIN и обнаружил странный момент после длительной работы с typescript (typeorm, knex): в плане работы с базой и маппингов в объекты всё слишком печально, неочевидно и перегружено.

1. До жути простой кейс : есть таблица customers и payments. У customers есть one-to-many связь к payments по полю payments.customer_id. Описан native query запрос к базе с join (без fetch join, чтобы добавить дополнительную аггрегацию суммы всех платежей). В SqlResultSetMapping маппинг описан и в конструкторах всё вызывается, однако, вместо 1 записи возвращается несколько и запрос падает в ошибку .


Если делать fetch join через обычный query (не native), то запрос проходит, однако делать вычисляемые поля отдельными функциями после получения результата из базы- убогий подход, так как это можно сделать при запросе в базу. Это лишь один банальный случай, который появился при начале работы со спрингом, jpa и hibernate'ом.

2. Маппинг данных из jsonb в dto класс.
Тоже максимально странное поведение, что под каждый мелкий класс в случае нативных запросов нужно писать маппер. Есть ли обходное универсальное решение ?

Назначение маппинга понятно, но в силу огромного количества магии как это фиксить, а тем более продолжить разработку массивной системы не понятно и сомнительно из-за крайне большого количества подобных моментов.

ЧЯДНТ ?

5 ответов

10 просмотров

А зачем вам вообще резалтсетмаппинг и натив квери?

Илья 🐸- Автор вопроса
Alexandr Stal
А зачем вам вообще резалтсетмаппинг и натив квери...

Без этого маппинг падал с no converter found capable of converting from type на каждом стоблце, в том числе для @ColumnResult(name = "pricing", type = CustomerPricingType.class) так как там структурированные jsonb данные

Если хочешь автомаппинг, то делай @entity под каждый native запрос. @table тогда не нужен.

точно что-то делаешь не так) 1. Есть @Formula например, не подошло? 2. Слишком абстрактно и не ясно как все устроено и в чем проблема

Илья 🐸- Автор вопроса
Maxim
точно что-то делаешь не так) 1. Есть @Formula нап...

Перетестил все возможные варианты, описанные с начала 10ых годов, до тех, что встречались уже в 20ых годах

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Всем привет!) я тут новенький и пытаюсь освоить evolution методом тыка. У меня при переходе между папками файлов выскакивают вот такие уведомления Можете подсказать как их от...
Диман Samoed
10
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Карта сайта