powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB
5 сообщений из 5, страница 1 из 1
Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB
    #38253249
Twinp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB
    #38253259
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Четко же в ошибке написано - не мешать декларативные и ручные транзакции
...
Рейтинг: 0 / 0
Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB
    #38253261
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно ли нужно ручное управление?
Если Spring использовать вместе с JPA, который из JEE контейнера, то можно отхватить на том, что управляя транзакцией в контейнере через EM, не будет работать конфигурация транзакций в Spring.
Надо определится с тем действительно ли нужны ручные транзакции, и по-возможности от них отказаться.

Вроде толковые примеры вот тут в последнем посте:
http://forum.springsource.org/showthread.php?48419-JPA-Spring-declarative-manual-transactions
...
Рейтинг: 0 / 0
Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB
    #38253687
Twinp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB
    #38253703
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Twinp
Код: java
1.
2.
3.
4.
5.
6.
@Transaction
void update() {
  update
  update
  update
}


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


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