Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с spring JPA transactions 
:(
    Опции темы
Andrey1
Дата 17.4.2010, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 2
Всего: 5



Не понимаю, почему вылетает exception: java.lang.ClassCastException: $Proxy204 cannot be cast to com.ap.jpa.dao.UserDao

Конфиг Spring JPA:

Код

...
   <bean id="entityManagerFactory"
          class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="generateDdl" value="false" />
                <property name="database" value="MYSQL" />
                <property name="showSql" value="false" />
            </bean>
        </property>

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

    <tx:annotation-driven transaction-manager="transactionManager" />

    <bean id="userDao" class="com.ap.jpa.dao.UserDao"         />
...


Код

@Transactional
public class UserDao extends com.szczytowski.genericdao.impl.GenericDao<User, Integer> implements IUserDao {
...
}


Код

public interface IUserDao extends com.szczytowski.genericdao.api.IDao<User, Integer>, UserDetailsService {
}


GenericDao:
Код

public class GenericDao<T extends IEntity<I>, I extends Serializable> implements IDao<T, I> {

    @PersistenceContext
    protected EntityManager entityManager;
...



--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
Andrey1
Дата 17.4.2010, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 2
Всего: 5



Завелись JPA транзакции пока только через TransactionTemplate:

Код

    <bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
    </bean>


Код

public class UserDao extends GenericDao<User, Integer> implements IUserDao {

    private TransactionTemplate transactionTemplate;

...

    public void saveUser(final User user)
    {
        getTransactionTemplate().execute(
                new TransactionCallback() {
                    public Object doInTransaction(TransactionStatus ts)
                    {
                        try
                        {
                           save(user);
                        } catch (Exception e)
                        {
                            ts.setRollbackOnly();
                        }
                        return null;
                    }
                });
    }

}


Правда, щас получается, что все методы Dao, для которых требуется транзакция нужно переписывать (что - грустно, и возникает вопрос, зачем тогда нужно GenericDao...).

Это сообщение отредактировал(а) Andrey1 - 17.4.2010, 16:04


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0448 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.