这几天在创建一个新模块的时候碰到了几个问题,记下来以免再犯。
1、编译时出现 org.hibernate.AnnotationException: @OneToOne or @ManyToOne on x
xx references an unknown entity yyy。
原因:在项目组件扫描时,自动扫描父模块的Conponent,不知道什么原因祖父模块的Entity没有扫描到。但本来我也没想要它扫描父模块的Entity,只需要它里面的一个类就好了。
解决方法:在启动类加上@ConponentScan注解,强制扫描本项目里面的Conponent。如图:
但其实这么想的话,也可以用@EntityScan去强制扫描父模块里面的Entity?没试过,不晓得
2、启动时出现NoClassDefFoundException。
原因:这个现在重现不出来了。。。很奇怪。必应上找到的是类加载的时候没有这个类,尝试把该类加到Path里面去,但是没有用。这个类是在父模块的POM文件中依赖的,原则上来说应该是没有问题。
解决方法:在该项目的POM文件中也加入该依赖。
3、启动web服务的时候,api找不到入口,报404错误
原因:找了一圈下来才发现,之前在解决扫描的时候没有把Controller层给扫描。。。很蠢的错误,但花了很长时间。。。
解决方法:在@ConponentScan中加入Controller的扫描