当前位置: 首页 > 知识库问答 >
问题:

SpringBoot JPA配置中没有名为“事务管理器”的bean

宗啸
2023-03-14

根据这里的baeldung

如果我们使用的是Spring Boot项目,并且在类路径上有spring-data-*或spring-tx>依赖项,那么事务管理将通过>default启用。“

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-artemis</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-integration</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
    </dependency>
    <dependency>
        <groupId>com.indra.icens</groupId>
        <artifactId>ic-license</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.jms</groupId>
        <artifactId>javax.jms-api</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-jms</artifactId>
    </dependency>
    <dependency>
        <groupId>com.ibm.mq</groupId>
        <artifactId>mq</artifactId>
    </dependency>
    <dependency>
        <groupId>com.ibm.mq</groupId>
        <artifactId>mqjms</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.resource</groupId>
        <artifactId>connector</artifactId>
    </dependency>
    <dependency>
        <groupId>com.indra.icens.srom</groupId>
        <artifactId>ic_int_srom_common</artifactId>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.1-api</artifactId>
    </dependency>
</dependencies>
spring.datasource.url=jdbc:postgresql://xxx/yyy
spring.datasource.username=asdasd
spring.datasource.password=werwer
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL95Dialect
spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
spring.jpa.show-sql=false

serviceConfig.java

@EnableJms
@Configuration
@ImportResource({
"classpath:/META-INF/spring/integration/main-config.xml"
})
@EnableJpaRepositories("com.nbi.conn.repository")
@EntityScan("com.nbi.conn.entities")
public class ServiceConfig {
}

哪里出了问题?,我在SpringBoot配置中遗漏了什么?

提前感谢你的帮助

共有1个答案

萧波峻
2023-03-14

您是否尝试像这样在配置中添加bean“TransactionManager”

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

    return transactionManager;
}
 类似资料:
  • 我正在使用带有spring jdbc事务支持的spring jdbc。 这是我的配置。 使用这个配置,事务对我来说不起作用。我不确定原因,但我能理解的是- 如您所见,jdbcTemplate()和txManager(),这两个方法都调用getDataSource()方法,该方法inturn创建JDBCDataSource。我认为在这两个方法中,我都创建了两个jdbc数据源,因此jdbcTempla

  • 我正在尝试使用beeline运行此命令。 错误:处理语句时出错:无法在运行时修改Hive.Support.Concurrency。它不在允许在运行时修改的参数列表中(状态=42000,代码=1) 谢谢你的帮助。

  • 我正在使用Spring(3.1.4版本)和HibernateTemplate(3.6.7.Final)以及Spring数据JPA(1.3.0版本)。我在配置文件中定义了两个事务管理器,一个用于Hibernate,另一个用于Spring数据JPA。两个事务管理器使用不同的数据源。 我想在代码中使用Hibernate的事务管理器和Spring data JPA的事务管理器。(Spring文档链接-10

  • 我试图使用JPA事务管理与使用Micronaut Postgresql的批处理插入。 |Micronaut版本:1.1.3 | JVM版本:1.8.0 | 我已经配置了Micronaut项目在build.gradle.中使用micronaut-hibernet-jpa 高级方法是这样的,当在应用程序中定义数据源时,它可以正常工作。yml。 我的界面 我的接口实现 如果我使用应用程序中的数据源,上面

  • 我有一个带有JPA/Hibernate的Spring Boot2.x应用程序和两个单独的事务管理器:每个租户1个,应用程序范围1个。所有实体、存储库和服务都被分离在不同的包中。 有没有一种方法可以在包级别上设置事务管理器,这样我就不必在每次使用时都显式地设置它? 基于使用@transactional注释的多个事务管理器中给出的答案,我创建了和元注释,但这不允许我设置标志,这是每个方法所必需的。