一个maven聚合工程 ,内有模块A ,B
B模块作为DAO、Service、 entity、的jar包
A为前端web模块,A依赖B模块,此时在A模块中配置@SpringbootApplication的启动配置类 ,后来发现B模块的entity没有自动生成表(jpa遇@entity自动生成表),
首先想到是@SpringbootApplication会自动扫描其配置类所在的包及其子包,所以首先检查配置的类包路劲与B模块下的包路劲是否相符,检查后排除了这个可能性。
之后想到会不会是Spring只扫描本项目中自己编写的类,其他JAR包不扫描(B模块作为jar包被引入),测试后发现即便是jar包中的类也会被扫描,排除这个可能性,
继续排查,想到可能是maven没有将B打成jar包,所以没有被引入,测试后发现即便没有将B模块打成jar包,安装到本地仓库, maven的聚合工程在Myeclipse中依然可以被引入。故排除之。
最后一种设想,那就是我引入的配置application.yml是不是没有配置自动创建表。 第一次将配置 spring.jpa.hibernate.ddl-auto = update
测试后发现还是没有自动创建表,之后再尝试将配置改成 spring.jpa.hibernate.ddl-auto = create,
测试成功 表被创建出来了。 特此记录今天的尴尬经历。