Не удается вставить данные при добавлении конфигурации JpaTransactionManager - PullRequest
0 голосов
/ 27 декабря 2018

Я добавил JpaTransactionManager в свое приложение, но по какой-то причине запросы INSERT вообще не выполняются.Я использую эту конфигурацию:

@Configuration
@EnableTransactionManagement
public class ContextDatasource {

    @Bean
    public EntityManager entityManager(EntityManagerFactory emf) {
        return emf.createEntityManager();
    }

    @Bean
    public PlatformTransactionManager transactionManager(final EntityManagerFactory emf) {
        final JpaTransactionManager transactionManager = new JpaTransactionManager();
        transactionManager.setEntityManagerFactory(emf);
        return transactionManager;
    }

    @Bean
    public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
        return new PersistenceExceptionTranslationPostProcessor();
    }
}

application.properties:

spring.jmx.enabled=false
spring.datasource.jndi-name=java:/global/app
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDBDialect
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update

Вставьте код:

Service
@Qualifier("userService")
@Transactional
public class UserRepositoryImpl implements UserRepository {

    @Autowired
    private EntityManager entityManager;

    @Override
    public <S extends Users> S save(S entity) {
        try {

            System.out.println("!!!!!!!!!! received entityManager.persist(entity);");

            entityManager.persist(entity);
        } catch (Exception e) {
            e.printStackTrace();             
        }
        return entity;
    }
    ...
}

Знаете ли вы, что мне не хватает какой-либо конфигурации?

1 Ответ

0 голосов
/ 27 декабря 2018

Чтобы поместить EntityManager в контекст постоянства, измените:

@Autowired  
private EntityManager entityManager;

на

@PersistenceContext
private EntityManager entityManager;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...