Про монахов и высокоуровневые абстракции
. . Фильтр OpenSessionInViewFilter из энтерпрайзного фреймворка Spring очень странно себя ведет при совместном использовании с паттерном DAO над Hibernate объектами - не обращает внимания на прописанные параметры @Transactional у классов вида EntityService, считает, что транзакция метода всегда должна быть только "readOnly" и, как следствие, при попытке сохранения подотчетных EntityService объектов в базу валится с эксепшном: "org. springframework. dao. InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode. MANUAL): Turn your Session into FlushMode. COMMIT/AUTO or remove 'readOnly' marker from transaction definition" "Включив" же сессию в запрашиваемый режим - COMMIT/AUTO фильтр вроде бы что-то делает, но реально данные в базу попадают только при следующем реквесте текущего сервлета. Все правильно, сессия-то одна на весь реквест - для того и паттерн, а, согласно коду OpenSessionInViewFilter. java, сессия принудительно сбрасывает данные только при своем закрытии. А закрывается она в конце жизни сервлета, то есть новые данные показываются уже только новой сессией. Можно еще прописать фильтру параметр "singleSession=false", но тогда и так закапсулированная от разработчика методика работы с сессиями становится совсем магической - в процессе работы сервлета фильтр-таки открывает как минимум две сессии, а то и больше, причем, когда именно - непонятно. Данные-то теперь сохраняются сразу, но зато теперь фильтр валится при удалении объектов с громкими матюками вида: "org. springframework. orm. hibernate3. HibernateSystemException: Illegal attempt to associate a collection with two open sessions; nested exception is org. hibernate. HibernateException: Illegal attempt to associate a collection with two open sessions" Народ на форумах срет кирпичами, мучается и многозначительно посылает друг друга в javadoc, где, впрочем, данная магия практически не объясняется. Впрочем, и рыбку съесть и использовать одну сессию возможно и работает это у меня только, если принудительно прописать сбрасывание данных у DAO-объектов. Если используется HibernateTemplate (а он должен использоваться в данном случае), то тогда можно прописать абстрактному DAO класу в паре мест строчки вида: getHibernateTemplate(). flush(); и все, вроде бы, работает нормально, но не очень хорошо это - всегда и принудительно сразу же сбрасывать данные в базу. . О чем это я?. . Ах, да, это краткое содержание моего рабочего дня вчера. В переводе на русский звучит как: у меня там в программе одна штука не работает. Поэтому, вот вам позитивные монахи. У них все работает. А даже если и не работает - они все равно не парятся. Философия у них такая. . ) Tweet jQuery. VK. addButton("vk_like_707783522", {"pageUrl":"http://petrpopov. livejournal. com/116365. html", "pageTitle":"Про монахов и высокоуровневые абстракции", "verb":"1", "pageDescription":". . Фильтр OpenSessionInViewFilter из энтерпрайзного фреймворка Spring очень странно себя ведет при совместном использовании с паттерном DAO над Hibernate объектами - не обращает …", "type":"mini", "pageImage":"http://petrpopov. ru/photos/lj/nepal/2255w850c. jpg"}); Give 10
23.08.2011 смотреть >>Про монахов и высокоуровневые абстракции
. . Фильтр OpenSessionInViewFilter из энтерпрайзного фреймворка Spring очень странно себя ведет при совместном использовании с паттерном DAO над Hibernate объектами - не обращает внимания на прописанные параметры @Transactional у классов вида EntityService, считает, что транзакция метода всегда должна быть только "readOnly" и, как следствие, при попытке сохранения подотчетных EntityService объектов в базу валится с эксепшном: "org. springframework. dao. InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode. MANUAL): Turn your Session into FlushMode. COMMIT/AUTO or remove 'readOnly' marker from transaction definition" "Включив" же сессию в запрашиваемый режим - COMMIT/AUTO фильтр вроде бы что-то делает, но реально данные в базу попадают только при следующем реквесте текущего сервлета. Все правильно, сессия-то одна на весь реквест - для того и паттерн, а, согласно коду OpenSessionInViewFilter. java, сессия принудительно сбрасывает данные только при своем закрытии. А закрывается она в конце жизни сервлета, то есть новые данные показываются уже только новой сессией. Можно еще прописать фильтру параметр "singleSession=false", но тогда и так закапсулированная от разработчика методика работы с сессиями становится совсем магической - в процессе работы сервлета фильтр-таки открывает как минимум две сессии, а то и больше, причем, когда именно - непонятно. Данные-то теперь сохраняются сразу, но зато теперь фильтр валится при удалении объектов с громкими матюками вида: "org. springframework. orm. hibernate3. HibernateSystemException: Illegal attempt to associate a collection with two open sessions; nested exception is org. hibernate. HibernateException: Illegal attempt to associate a collection with two open sessions" Народ на форумах срет кирпичами, мучается и многозначительно посылает друг друга в javadoc, где, впрочем, данная магия практически не объясняется. Впрочем, и рыбку съесть и использовать одну сессию возможно и работает это у меня только, если принудительно прописать сбрасывание данных у DAO-объектов. Если используется HibernateTemplate (а он должен использоваться в данном случае), то тогда можно прописать абстрактному DAO класу в паре мест строчки вида: getHibernateTemplate(). flush(); и все, вроде бы, работает нормально, но не очень хорошо это всегда и принудительно сразу же сбрасывать данные в базу. . О чем это я?. . Ах, да, это краткое содержание моего рабочего дня вчера. В переводе на русский звучит как: у меня там в программе одна штука не работает. Поэтому, вот вам позитивные монахи. У них все работает. А даже если и не работает - они все равно не парятся. Философия у них такая. . ) Tweet jQuery. VK. addButton("vk_like_567637538", {"pageUrl":"http://ezheg. livejournal. com/116365. html", "pageTitle":"Про монахов и высокоуровневые абстракции", "verb":"1", "pageDescription":". . Фильтр OpenSessionInViewFilter из энтерпрайзного фреймворка Spring очень странно себя ведет при совместном использовании с паттерном DAO над Hibernate объектами - не обращает …", "type":"mini", "pageImage":"http://petrpopov. ru/photos/lj/nepal/2255w850c. jpg"}); Give 10
23.08.2011 смотреть >>Мы вернулись! )
Вот мы и дома. Отдохнувшие, загоревшие, с новыми впечатлениями, новыми силами и вдохновением ))) Снова берусь за работу! Фотографий с Родоса очень много, обещаю показать, но позже ;)
22.08.2011 смотреть >>Мы вернулись! )
Вот мы и дома. Отдохнувшие, загоревшие, с новыми впечатлениями, новыми силами и вдохновением ))) Снова берусь за работу! Фотографий с Родоса очень много, обещаю показать, но позже ;)
22.08.2011 смотреть >>Господа полицейские
. . спешат на работу. Непал, Бхактапур. Tweet jQuery. VK. addButton("vk_like_141477628", {"pageUrl":"http://petrpopov. livejournal. com/116115. html", "pageTitle":"Господа полицейские", "verb":"1", "pageDescription":". . спешат на работу. Непал, Бхактапур. ", "type":"mini", "pageImage":"http://petrpopov. ru/photos/lj/nepal/4708w850c. jpg"}); Give 10
22.08.2011 смотреть >>Господа полицейские
. . спешат на работу. Непал, Бхактапур. Tweet jQuery. VK. addButton("vk_like_626290723", {"pageUrl":"http://ezheg. livejournal. com/116115. html", "pageTitle":"Господа полицейские", "verb":"1", "pageDescription":". . спешат на работу. Непал, Бхактапур. ", "type":"mini", "pageImage":"http://petrpopov. ru/photos/lj/nepal/4708w850c. jpg"}); Give 10
22.08.2011 смотреть >>художественные персонажи
Как думаете, что означает б/н на фото выше? версии "безнал" и "без носа" не предлагать:). P. S. Сижу в Шереметьево. Впервые решила слетать "Авиановой" в Челны, расскажу потом об опыте полетом бюджетными авиакомпаниями в России, это у меня впервые. В Старбаксе играет сборник старых блюзовых композиций, и это самое то, что нужно для дождливого дня. Обожаю запах кофе и совершенно спокойно отношусь к его вкусу. Чай пью, это да:) Кажется, книга, которую я начала читать сегодня, рискует стать самой захватывающей и красиво написанной из прочитанных за первую часть отпуска. Горан Петрович "Осада церкви Святого Спаса". До этого были: в Севастополе - А. Иванов "Летоисчисление от Иоанна" (по ней сняли страшный фильм "Царь") и "Географ глобус пропил", сборник рассказов Х. Мураками ("Светлячок" самый приятный, и "Танцующая фея" - самый загадочный) и его же "Норвежский лес", Ричард Йейтс (автор "Дороги перемен") "Холодная гавань", в поезде - Иван Шмелев "Солнце мертвых" (страшно и потрясающе образно, и больно - о послереволюционном терроре и голоде в Крыму), и в Москве уже, почему-то созвучное Москве - М. Кундера "Невыносимая легкость бытия" (ну это я прямо не знаю, что и сказать. . . совсем не так, как я себе это представляла, но задуматься местами заставляет). Оригинал записи и комментарии на LiveInternet. ru
21.08.2011 смотреть >>Цветные кусочки жизни
Жизнь состоит из маленьких кусочков, не всегда сочетающийся друг с другом по цветам. Но получается, что бездумно ни одного кусочка не выбросишь - особенно когда не знаешь, к чему приведет такое выбрасывание. А обычно заранее не знаешь, пока не. . . . Сегодня, вернее, уже вчера - день растворения, дождя, расставаний и обещания встреч. Никуда не нужно идти. Тут в основном то, что я рисовала в поезде Севастополь-Москва, хотя его трясло и качало, как при высокой турбулентности. . . .
21.08.2011 смотреть >>василий смущен :)
friendship for ever III by Katerina Karmanovskaya
21.08.2011 смотреть >>Петергоф 2011
Последним на очереди был Петергоф. Близился вечер понедельника. Было прохладно. Навигатор отказывался работать. Кольцевую Питера идентифицировал как "тропу", требовал развернуться и ехать обратно:-) Но мы его победили, доехали - и даже успели вовремя до закрытия. Петергоф встретил нас промозглым ветром и тучами. Дождь так и не пошел - и то хорошо. Нас очень повезло - мы успели в Петергоф до отключения фонтанов(приехали за полчаса, немного сэкономили на входных билетах). Верхний парк: Основоной фонтан еще работал. Он даже в пасмурную погоду восхищает (первое фото). Успели мы еще к веселым фонтанам (грибочкам, цветочкам, дубочкам) - как дети малые: Потом фонтаны выключили и мы просто бродили по территории - красиво там. И елки: И даже рыба в пруду: Этот садик меня покорил еще в прошлый раз: У Финского залива. Демон сидящий. . . Да! Еще там в парке полно бесстрашных белок. Их там, видимо, подкармливают - совсем страх потеряли:
19.08.2011 смотреть >>MM-mm. . . summer wind
"The summer wind, came blowin' in from across the sea It lingered there to touch your hair and walk with me All summer long we sang a song and then we strolled that golden sand Two sweethearts and the summer wind. . . " FC
18.08.2011 смотреть >>Яна. Фотосессия на Кипре.
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
17.08.2011 смотреть >>Совсем забыл.
Я тут зарегистрировался на Google+ gplus. to/dimab Пощу (или постю) почти то же самое что ив ЖЖ. Добавляйтесь! Если нету аккаунта пишите gmail я пошлю приглашение (осталось 100)
17.08.2011 смотреть >>