Home
Simplify and modify [entries|friends|calendar]
cornpiler


жж счетчик - lj counter

[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

Do you speak English? [08 Feb 2010|11:01pm]
[ mood | fun ]


post comment

Spring JPA lazy load [01 Nov 2009|05:47pm]
[ mood | creative ]
[ music | Aphrodite - Listen To The Rhythm ]

Дано:
 - Spring framework 2.5
 - Hibernate 3.2.5
 - JPA
 - Netbeans для генерации классов сущностей и классов-контроллеров над сущностями.

Нужно:
  - осуществить доступ к свойствам (коллекциям) объектов-сущностей во View. 

Решения:
//
1) Можно вынести все методы работы с коллекциями в соответствующие функции сервис уровня. В таком случае поздняя загрузка не требуется, но тогда может быть черезмерное количество различных методов.
2) Можно использовать позднее связывание и работать с функциями интерфейсов для получения свойств-коллекций разных объектов, нежели делать для каждой коллекции свой отдельный метод в сервисе. Что кажется более логичным и удобным.

Интересует 2-ой способ. ( По сути нужен рабочий вариант шаблона Open Session in View )

Искал неделю почти и совершенно случайно наткнулся на... ( *барабанная дробь* ) org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter

Я использовал частично аннотационный подход частично декларативный.
В классах для работы с Entity объектами использовались
@Transactional для класса
@PersistenceContext для entityManager-а

Итак, что-бы заставить это хозяйство работать нужно:
1) Добавить в web.xml:

    <filter>
        <filter-name>EMFFIlter</filter-name>
        <filter-class>
            org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
        </filter-class>
    </filter>

    <filter-mapping>
        <filter-name>EMFFIlter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

2) Добавить в applicationContext.xml:

     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>

    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
     <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
           <property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect" />
        </bean>
     </property>
     <property name="dataSource" ref="dataSource"/>
     <property name="persistenceUnitName" value="persistenceUnitName"/>
    </bean>

    <bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory"/>
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <tx:annotation-driven transaction-manager="txManager"/>
   
    <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

3) persistence.xml

<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="persistenceUnitName" transaction-type="RESOURCE_LOCAL">
  </persistence-unit>
</persistence>

Итого:
 После генерации классов-контроллеров над классами-сущностями нужно модифицировать их путем комментирования кода отвечающего за работу с транзакциями и закрытием EntityManager`а т.к. через @PersistenceContext аннотацию используется Shared EntityManager
Также надо не забыть прописать этим классам аннотацию @Transactional для использования транзакций.

Собстно все. Должно работать :)
 

post comment

Ray Charles Robinson [04 Sep 2009|01:11am]
[ mood | impressed ]


One Of The Best Films I Ever Saw...(c)

post comment

Terminator Salvation [25 Aug 2009|11:24pm]
[ music | Terminator one theme ]



Посмотрел. Понравилось. Может быть и не столь эпический как первый, но, как говорится: "... раньше и сахар был слаще и вообще всё лучше ... "

2 comments|post comment

Музыкант :) [24 Jun 2009|12:10pm]
[ mood | optimistic ]



1 comment|post comment

Овцефермерский хайтек :) [09 Apr 2009|12:12pm]
[ mood | high ]


Заморочались фермеры :)

post comment

Кулинарное. [08 Mar 2009|07:47pm]
[ mood | tired ]

В кастрюле булькает вода,
Кипит чудесный суп.
Но жаль не повар - овощь я.
Мне пробу не дадут.

post comment

One step closer [01 Mar 2009|02:00pm]
[ mood | optimistic ]
[ music | Aphrodite feat Big Daddy - Off limits ]

Получил ошибку NoClassDefFoundError при использовании класса UnsupportedOperationException :D

UPD: MessageDigest, туда же.

ЗЫ: Affected Sony Ericsson, Siemens...

post comment

Не прошло и года. [27 Feb 2009|09:58am]
Собсно мемристор в действии.

Новый путь для дальнейшего наращивания производительности микросхем открыли специалисты лабораторий Hewlett-Packard (HP Labs). Они впервые на практике доказали работоспособность гибридных логических схем, составленных из мемристоров и транзисторов.

Тык


1 comment|post comment

Хорошо забытое старое [26 Feb 2009|01:32pm]
[ music | Manau - La tribu de Dana ]

Мельница - Тебя ждала я.
Manau - La tribu de Dana ( альбом Panique Celtique - 1999 год )

Разные исполнители, разный смысл, но музыку Мельница у  Manau таки подслушала или же это тот случай когда одна и та же тема пришла в голову разным людям :)

post comment

Viral Decay Acceleration [12 Feb 2009|10:29am]

Интересная концепция.

Links:
Тык
Клац

1 comment|post comment

Похоже. [22 Jan 2009|01:48pm]
[ mood | thoughtful ]

В московском метро ездят относительно новые типы вагонов, например на филевской линии. Так вот давно еще заметил что "юные" вагоны при остановке "кричат", а уже более старые, умудренные опытом, в большинстве своем едут тихо.. Как у людей :)

post comment

Китайские души [05 Nov 2008|11:19pm]
[ mood | disappointed ]
[ music | Tego Calderon - El Que No Lucha No Avanza ]

Не умеют все-таки китайцы делать душевые кабины :(

post comment

Кто в ночи на бой спешит, побеждая зло? :) [27 Oct 2008|11:20pm]
[ mood | nostalgic ]

Всем кто помнит ЧП, посвящается :)

Так умельцы проходят.

А так звучит в фортепьянном исполнении одна из игровых тем:




post comment

Зенитит :) [30 Aug 2008|12:47am]
[ mood | satisfied ]

Суперкубок у Зенита :) Жгут... За год 2 еврокубка.

1 comment|post comment

Люди - оркестры [03 Aug 2008|05:14pm]
1 comment|post comment

Весна. [07 Jun 2008|12:50am]
Просто прикольно и имхо, креативно.

ЗЫ: подсмотрел у: [info]melkij_becc
3 comments|post comment

15 лет спустя. [19 May 2008|11:00am]
[ mood | satisfied ]

Спустя 15 лет сборная России - чемпион мира по хоккею. Финальный матч - Россия:Канада 5:4 в овертайме. Ура :) Если учесть что Зенит выиграл УЕФА, то этот месяц впечатляет победами :)

6 comments|post comment

В Зените! :) [15 May 2008|12:37am]
[ mood | satisfied ]

Всем Гратц! :) Зенит выиграл УЕФА 2008!!!

2 comments|post comment

Прогноз погоды. [13 May 2008|06:06pm]
[ mood | disappointed ]

Стремно быть синоптиком. Посмотрел на данные, вроде все ок, спрогнозировал хорошую погоду, а тут - бах и коллапс, погода испортилась. Не круто... Не хочу быть синоптиком, но хочу что б светило солнце и была хорошая погода.

ЗЫ: А еще на ёлку влезть и зад не ободрать. И, прошу, ни слова про рыбку :)

6 comments|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]

Advertisement