Not a managed type

问题描述:之前实体类的包名是Entity,为了统一规范现在给它改成全小写entity,打包部署到我们公司的环境上报以下错误
报错日志:
Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not a managed type: class grp.XXX.entity.XXX
问题解决:
step1 查看实体类有没有加@Entity注解(这个注解是有的,因为我只修改了一个包名)
step2 jpa配置扫描路径(最开始接触的jpa里面并没有相关配置类,还是别个提醒,用实体类的包名全局搜索了一下才发现有个配置类)

package grp.dataSource;

@Slf4j
@Configuration
@EnableConfigurationProperties(JpaProperties.class)
@EnableJpaRepositories(value = "com.XXX.dao",
        entityManagerFactoryRef = "entityManagerFactory",
        transactionManagerRef = "transactionManager")
public class JpaEntityManager {

    @Bean(name = "entityManagerFactoryBean")
    public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(EntityManagerFactoryBuilder builder) {
        Map<String, Object> properties = hibernateProperties.determineHibernateProperties(jpaProperties.getProperties(), new HibernateSettings());

        return builder
                .dataSource(routingDataSource())//关键:注入routingDataSource
                .properties(properties)
                .packages("com.XXX.entity")
                .persistenceUnit("myPersistenceUnit")
                .build();
    }

    @Primary
    @Bean(name = "entityManagerFactory")
    public EntityManagerFactory entityManagerFactory(EntityManagerFactoryBuilder builder) {
        return this.entityManagerFactoryBean(builder).getObject();
    }

    @Primary
    @Bean(name = "transactionManager")
    public PlatformTransactionManager transactionManager(EntityManagerFactoryBuilder builder) {
        return new JpaTransactionManager(entityManagerFactory(builder));
    }


}


版权声明:本文为weixin_44155001原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。