问题描述:之前实体类的包名是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版权协议,转载请附上原文出处链接和本声明。