Spring IllegalStateException: Ein JTA-EntityManager kann getTransaction () nicht verwenden

Nach einem großen Umgestaltungsprojekt habe ich diese Ausnahme und bin mir nicht sicher, wie ich sie korrigieren soll. Es geht um Code, den ich nicht geschrieben habe, und ich bin nicht mit der Funktionsweise vertraut. Es gibt noch andere Fragen zu dieser Ausnahme, aber keine scheint zu meiner Situation zu passen.

Die Klasse, die verwendetEntityManager istSpecialClaimsCaseRepositoryImpl:

package com.redacted.sch.repository.jpa;

//Imports

@Repository
public class SpecialClaimsCaseRepositoryImpl extends SimpleJpaRepository<SpecialClaimsCaseDto, SpecialClaimsCaseDto.Id> implements SpecialClaimsCaseRepository{

    @PersistenceContext(unitName = "schManager")
    private EntityManager em;

          //Some autogenerated methods

    public void setEntityManager(EntityManager em) {
        this.em = em;
    }

    public EntityManager getEntityManager() {
        return em;
    }
}

Persistence.xml:

<persistence 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"
    version="1.0">

    <persistence-unit name="schManager">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>jdbc/SCH_DS</jta-data-source>
        <class>com.redacted.sch.domain.model.SpecialClaimsCaseDto</class>
        <properties>
            <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WebSphereExtendedJTATransactionLookup" />
            <property name="hibernate.cache.region.factory_class" value="net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory" />
            <property name="hibernate.cache.use_query_cache" value="true" />
            <property name="hibernate.cache.use_second_level_cache" value="true" />
            <property name="hibernate.dialect" value="com.bcbsks.hibernate.dialect.DB2Dialect" />
            <property name="hibernate.format_sql" value="true" />
            <property name="hibernate.generate_statistics" value="false" />
            <property name="hibernate.jdbc.use_scrollable_resultset" value="true" />
        </properties>
    </persistence-unit>
</persistence>

sch_model_spring.xml:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

        <context:component-scan base-package="com.redacted.repository.jpa,
              com.redacted.sch.domain.model,
              com.redacted.sch.repository.jpa,
              com.redacted.sch.service,
              com.redacted.sch.service.impl"/>

        <tx:annotation-driven />

        <tx:jta-transaction-manager />

        <!-- Data source used for testing -->
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
            <property name="driverClassName" value="com.ibm.db2.jcc.DB2Driver" />
            <property name="url" value="jdbc:db2:redacted.redacted.com" />
            <property name="username" value="redacted" />
            <property name="password" value="redacted" />
        </bean>

        <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
              <property name="persistenceUnitName" value="schManager" />
              <property name="dataSource" ref="dataSource" />
        </bean>

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

Und hier ist meine Projektstruktur:

>

Hier ist ein Teil des Stack-Trace mit dem vollständigen Tracefpaste

Caused by: java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()
    at org.hibernate.ejb.AbstractEntityManagerImpl.getTransaction(AbstractEntityManagerImpl.java:985)
    at org.springframework.orm.jpa.DefaultJpaDialect.beginTransaction(DefaultJpaDialect.java:67)
    at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:380)
    ... 80 more

Ich bin hier ein absoluter Neuling. Wenn Sie also weitere Informationen benötigen, fragen Sie einfach und ich werde sie aktualisieren.

Danke für all die Hilfe!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage