Вот ей-бо, лично мое мнение — если в коде появляется LinkedHashMap <String, HashMap <String, Object>>, то это уже проблема, и var ее не решает, а маскирует.
Вы как-то забыли, что Blizzard начался не с WoW, и даже не с просто Warcraft: Orc and Humans, а еще аж с Blackthorne и The Lost Vikings. И с тех пор у них получается все лучше и лучше.
А потом мы читаем статьи, как проект отдали индусам, команду раскололи пополам и отдали в разные подразделения, а повышение «вы, скорее всего, получите в ближайшие шесть месяцев, на этот-то раз уж наверняка».
Какая у людей жизнь интересная! Вот я когда зубы чищу, то занят в основном тем, что ужасаюсь, какая панда на меня из зеркала смотрит — сама бледненькая-пребледненькая, кружочки вокруг глаз черненькие-пречерненькие…
SourceTree, в свое время, неожиданно сделал мне коммит даже не задавая никаких вопросов, хотя я просто тыкался по дереву, в попытках вывести информацию об определенной ревизии, чем, в общем-то, убедил меня знакомство не продолжать. GitExtension таких вольностей себе не позволяет, пока явно в кнопку «коммит» не ткнешь — не закоммитишь.
>> транзакции в СУБД пятилетнему ребёнку.
Ну, как тут не вспомнить гениальное:
XXX шо есть транзакцыи?
YYY как бы тебе объяснить.
YYY вот ты бежышь срать в толчок.
YYY но по дороге не донёс.
YYY и обосрался.
YYY так вот с транзакциями можно сделать так, будто ваще и не бежал и не обосрался
Ну, нашли вы этот код, а он читает данные из БД, а у вас проблема как раз в том, что возвращается что-то не то. В итоге все равно вы обречены спуститься на уровень базы, данных и селектов. JPA это абстракция, и как любая абстракция имеет положительные и отрицательные эффекты. В случае таких вот элементарных запросов, имхо, отрицательных эффектов гораздо больше, чем положительных. Запрос + rowmapper — почему бы нет?
Да бросьте, если запрос не меняется, да к тому же достаточно элементарен, то почему бы не положить его в код ровно там, где он применяется, и где его будет ожидать увидеть тот, кто код читает? jpa, hibernate, гвоздь, микроскоп…
Пардон, но я как раз смотрю на максимально абстрактную ситуацию с абстрактной Асей, абстрактным оффером, и так далее. И если для меня все выглядит ТАК, то оно просто так выглядит — либо вы плохо описали ситуацию, либо так оно и есть на самом деле. А вот что действительно удобно, так это рассказывать оппоненту, как ему удобно о чем не задумываться, и как он относится к своей точке зрения.
пока непривычно как-то :) Но няфффно, это да :D
Почему? Наоборот, SOLID во все поля! Под задачу валидации выделен отдельный класс, который несет только одну ответственность :D
И у них, как я понимаю, неплохо получается ;)
Ну, как тут не вспомнить гениальное:
XXX шо есть транзакцыи?
YYY как бы тебе объяснить.
YYY вот ты бежышь срать в толчок.
YYY но по дороге не донёс.
YYY и обосрался.
YYY так вот с транзакциями можно сделать так, будто ваще и не бежал и не обосрался
Наглость — второе счастье :)