Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB / 5 сообщений из 5, страница 1 из 1
10.05.2013, 17:49:58
    #38253249
Twinp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB
hibernate 4.2 spring 3.2 web
при сохранение через persist все отрабатыает нормально. Но при ручном управлеие тразакцией через getTransction().begin()
выдает
Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB

Все как советую в инете так и настроенно. Но не помогает. Кто знает что делать ?

Код: xml
1.
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.
28.
29.
30.
31.
32.
    <tx:annotation-driven
            transaction-manager="txManager"
            proxy-target-class="true"/>

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

    <bean id="myEmf"
          class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

        <property name="dataSource" ref="dataSource" />
        <!--<property name="dataSource" value="jdbc/Orion1" />-->
        <property name="packagesToScan" value="kz.mon" />
        <property name="persistenceUnitName" value="${persistenceUnitName}" />
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="showSql" value="${hibernate.show_sql}" />
                <property name="generateDdl" value="${jpa.generateDdl}" />
                <property name="databasePlatform" value="${persistence.dialect}" />
            </bean>
        </property>
    </bean>


    <bean id="dataSource"
          class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${db.driverClassName}" />
        <property name="url" value="${db.url}" />
        <property name="username" value="${db.username}" />
        <property name="password" value="${db.password}" />
    </bean>
...
Рейтинг: 0 / 0
10.05.2013, 18:04:58
    #38253259
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB
Четко же в ошибке написано - не мешать декларативные и ручные транзакции
...
Рейтинг: 0 / 0
10.05.2013, 18:07:41
    #38253261
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB
Действительно ли нужно ручное управление?
Если Spring использовать вместе с JPA, который из JEE контейнера, то можно отхватить на том, что управляя транзакцией в контейнере через EM, не будет работать конфигурация транзакций в Spring.
Надо определится с тем действительно ли нужны ручные транзакции, и по-возможности от них отказаться.

Вроде толковые примеры вот тут в последнем посте:
http://forum.springsource.org/showthread.php?48419-JPA-Spring-declarative-manual-transactions
...
Рейтинг: 0 / 0
11.05.2013, 15:37:12
    #38253687
Twinp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB
Blazkowicz, Да определился уже. Есть простой CRUD на одним объектом. А есть операции захватывающие несколько объектов, и если один из них дает сбой при сохранение то остальные нужно вернуть в пржнее состояние. Как тут без ручного режима, только
Код: sql
1.
2.
3.
4.
5.
begin 
update
update
update
commit. 



Еще не доконца разобрался. Может кто подскажит как такое делается ? Есть фантазии что можно в транзакцию обернуть весь метод, типа, но чувствую что это не так )

Код: java
1.
2.
3.
4.
5.
6.
@Transaction
void update() {
  update
  update
  update
}
...
Рейтинг: 0 / 0
11.05.2013, 16:02:23
    #38253703
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB
Twinp
Код: java
1.
2.
3.
4.
5.
6.
@Transaction
void update() {
  update
  update
  update
}


Именно. Если один из методов выкинет исключение, то вся транзакция откатится. Смысл тогда в декларативной транзакции, если вы всегда в ручную хотите комитить?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]