Spring Boot 2.0.0.M4和Hibernate 5.2.11.Final找不到EntityManagerFactoryBuilder类型的bean

eztinkerdreams

我显然有一些配置问题,但我自己无法解决。我希望你们能帮助我吗?

我发现的所有示例均未表明必须为EntityManagerFactoryBuilder创建Bean,这是什么问题。

我正在尝试配置完全独立的数据源,包括不同的实体管理器等。

我的错误:


申请启动失败


描述:

方法EntityManagerFactory的参数0需要找不到类型为“ org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder”的bean。

行动:

考虑在配置中定义类型为“ org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder”的bean。

我的数据源配置

package ...;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import javax.sql.DataSource;

@Configuration
@EnableTransactionManagement
public class DataSourceConfiguration {


    @Primary
    @Bean()
    @ConfigurationProperties(prefix="spring.my.datasource")
    public DataSource myDataSource() {
        return DataSourceBuilder.create().build();
    }



    @Primary
    @Bean(name = "myEntityManager")
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder factoryBuilder,
                                                                       @Qualifier("myEntityManager") DataSource bds) {
        ...
    }
}

我的应用程序

@SpringBootApplication(exclude = {
        DataSourceAutoConfiguration.class,
        HibernateJpaAutoConfiguration.class,
        JpaRepositoriesAutoConfiguration.class,
        DataSourceTransactionManagerAutoConfiguration.class
})

我的宝

eztinkerdreams

回应@Albert Bos问题...

我想这是什么。

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
        basePackageClasses = { MyEntityRepository.class },
        repositoryBaseClass = EntityRepositoryImpl.class,
        transactionManagerRef = "myTransactionManager",
        entityManagerFactoryRef = "myEntityManagerFactory"
)
public class MyDataSourceConfiguration { ...

这是我的数据源配置。

@Bean(name = DATASOURCE_NAME + "DataSource")
public DataSource dataSource(@Qualifier(DATASOURCE_NAME + "DataSourceProperties") DataSourceProperties dataSourceProperties) 
{
    return DataSourceBuilder.create()
            .url(dataSourceProperties.getUrl())
            .username(dataSourceProperties.getUsername())
            .password(dataSourceProperties.getPassword())
            .driverClassName(dataSourceProperties.getDriverClassName())
            .build();
}

@Bean(name = DATASOURCE_NAME + "EntityManagerFactory")
@PersistenceContext(unitName = DATASOURCE_NAME + "PersistenceUnit")
public EntityManagerFactory entityManagerFactory(
        @Qualifier(DATASOURCE_NAME + "JpaProperties") Properties jpaProperties,
        @Qualifier(DATASOURCE_NAME + "DataSource") DataSource dataSource,
        @Qualifier(DATASOURCE_NAME + "JpaVendorAdapter") JpaVendorAdapter jpaVendorAdapter) 
{
    LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
    factoryBean.setDataSource(dataSource);
    factoryBean.setJpaProperties(jpaProperties);
    factoryBean.setJpaVendorAdapter(jpaVendorAdapter);
    factoryBean.setPackagesToScan(MyEntity.class.getPackage().getName());
    factoryBean.setPersistenceUnitName(DATASOURCE_NAME + "PersistenceUnit");
    factoryBean.afterPropertiesSet();
    return factoryBean.getObject();
}

@Bean(name = DATASOURCE_NAME + "TransactionManager")
public PlatformTransactionManager transactionManager(@Qualifier(DATASOURCE_NAME + "EntityManagerFactory") EntityManagerFactory entityManagerFactory) 
{
    JpaTransactionManager txManager = new JpaTransactionManager();
    txManager.setEntityManagerFactory(entityManagerFactory);
    return txManager;
}

和应用程序配置

@SpringBootApplication(exclude = {
        LiquibaseAutoConfiguration.class,
        DataSourceAutoConfiguration.class,
        ValidationAutoConfiguration.class,
        HibernateJpaAutoConfiguration.class,
        JpaRepositoriesAutoConfiguration.class,
        DataSourceTransactionManagerAutoConfiguration.class
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring Boot 2,Spring Security 5和@WithMockUser

将EmbeddedServletContainerCustomizer(Spring 2和Spring Boot 2)更改为WebServerFactoryCustomizer(Spring 5和Spring Boot 2)。

Spring Boot和MyBatis和H2-VARCHAR(1024)列的值前面加上“ clob0:”

2 ^ 0 * 2和(2 ^ 0)* 2之间的区别?

Hibernate 5和Spring Boot 2-AttributeConverter类多次注册

为什么 int arr[]={0,3,2,4,5,6,7}; 给出错误和 int arr[7]={0,3,2,4,5,6,7}; 不是

不明白为什么(5 | -2)> 0为False(5或-2)> 0为True

Spring-Service中构造函数的错误参数0需要找不到配置类型的Bean

spring boot 找不到类型的bean

在带有Junit 5和Spring Boot 2的Mokito 2中未找到测试

我想把数组 [1,2,3,4,5,6,7,8,9,10,11] 变成数组 [1,2,3,4,5,6,7,8,9,1 ,0,1,1] 仅使用此算法

“%%2:”和“ number%2 == 0”之间的区别?

从Spring Boot Oauth2迁移到Spring Security 5

python 将列表 [0, 1, 2, 3, 4, 5] 转换为 [0, 1, 2], [1,2,3], [2,3,4]

python3:〜2 = -0b11?

在 Spring Framework 5 和 Spring Boot 2 中实例化服务器

使用Spring Boot 2和Spring Security 5进行多重身份验证

找不到用于参数[build_88ddjipq2tquhqjwgj0asxwi4 $ _run_closure3 @ 5ddee9dd]的方法compileOptions()

清除算法以生成类型为(0)到(0,1,2,3,4,5,6,7,8,9)的所有集合

u-boot bootdelay = 2,当启动ext4时,bootdelay = 0,当启动fat时,

我找不到计算器的解决方案,我的代码0×2 = 2或0/2 = 2

在我的汇编程序中,我试图计算 (((((2^0 + 2^1) * 2^2) + 2^3) * 2^4) + 2^5) 的方程

Spring Boot 2找不到@Test(expected = xxx)

keras:ValueError:输入0与层卷积不兼容2d_11:预期的ndim = 4,找到的ndim = 2

RxJava2找不到Func0

Spring Boot 2:无法构建Hibernate SessionFactory

Spring Boot 2 Hibernate Update未插入

SwiftUI dyld:找不到符号:_ $ s7SwiftUI7BindingVyxGAA0C11ConvertibleAAMc Xcode 11 beta 5

Spring Boot + JWT Oauth2:Spring 5 vs Spring <5