Федор Сазонов
Компания: Сбер
Есть мнение, что фреймворки вроде Hibernate и Spring Data создают абстракцию над базой данных, которая сразу из коробки работает идеально. Но идеально не работают даже сами базы данных — даже когда между ними и приложением нет ничего кроме SQL.
Например, в случае необходимости получить данные из базы по динамическому фильтру часто пишут запросы вида: where user.name = :name or :name is null
.
Из-за комбинации удобства и неочевидности сколько проблем с производительностью это удобство создает, запросы такого вида спонтанно «самозарождаются» в любом проекте и продолжают там появляться, даже когда эти запросы пару раз положили на прод.
О таких запросах и о том, как кодогенерация помогает свести ущерб от них к минимуму, и пойдет речь в докладе.
Компания: Сбер
Компания: Всегда.Да
Компания: Haulmont