spring boot 找不到实体
Posted
技术标签:
【中文标题】spring boot 找不到实体【英文标题】:spring boot not finding Entities 【发布时间】:2015-01-03 01:11:17 【问题描述】:我正在运行具有以下结构的 Spring Boot 应用程序
Main Application
com/my/application/app/boot/AppStarter.java
depends on Lib Application
Lib Application
META-INF/package/persistence.xml
com/my/application/data/Entity1.java
实体 1 是使用 @Entity
和 @Table
注释的持久性对象
AppStarter如下:
@ComponentScan( "com.my.application.sampleScan1",
"com.my.application.sampleScan2")
@EntityScan(basePackages="com.my.application.data")
@EnableAutoConfiguration
@Configuration
@PropertySources(
@PropertySource(value = "classpath:application.properties", ignoreResourceNotFound = true),
@PropertySource(value = "classpath:test.properties", ignoreResourceNotFound = true) )
@ImportResource( "classpath:my/application/fake/fakeContext.xml")
public class FakeAppBooter
public static void main(String args[])
SpringApplication.run(FakeAppBooter.class, args);
当我使用 spring boot 应用程序将其打包为 jar 时,Lib 应用程序位于 /lib/LibApplication.jar
内,但是当它尝试访问实体 Entity1
时,我得到一个:org.hibernate.MappingException: Unknown entity: com.my.application.data.Entity1
当它在 Eclipse 中执行时,它工作正常,它只会在我运行 spring-boot-plugin 生成的 jar 时中断。
【问题讨论】:
同一条船。有桨吗? 这已经很久了,我不记得实际的问题是什么。我记得的是 Spring boot 注释和 xml 配置不能很好地协同工作。如果您可以尝试切换到仅注释或仅 xml 配置,它可能会有所帮助。 我错过了@EntityScan 【参考方案1】:您需要对所有包进行组件扫描,并对所有实体进行实体扫描
com.uganda.** 和 com.uganda.**.entity
所有内容都应包含在您的引导应用程序类中,如下所示
@SpringBootApplication
@ComponentScan( "com.uganda")
@EntityScan(basePackages= "com.uganda")
public class MyBootpApplication
【讨论】:
【参考方案2】:最好不要单独使用注解,最好只使用
@SpringBootApplication
注释你的类,让 Spring Boot 完成剩下的工作。
【讨论】:
以上是关于spring boot 找不到实体的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring Boot 应用程序中找不到类型现金流的属性日期
找不到符号 - Spring Boot Maven 兄弟作为依赖
如何修复“java.sql.SQLException:找不到列 'id'。” Spring Boot 中的错误
Spring Boot Jackson ResponseEntity 找不到类的序列化程序
找不到 Spring Boot Mongo Reactive 类 - 找不到类 [org.springframework.data.mongodb.MongoDatabaseFactory]