最近楼主突发奇想,自己写了一个模块,决定以jar包的方式集成到项目里,但是当使用hibernate持久化jar包中类的时候,出问题了,如下:
org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: com.carpo.info.model.TInfos
hibernate映射出问题了?有经验的同学也许已经猜到楼主要说的问题了,但是楼主当时完全不知道啊。反复猜想测试(是不是注解导错包了...等等等等),但是都失败了。于是决定用最原始的方式,在hibernate.cfg.xml加入了如下配置:
<mapping class="com.carpo.info.model.TInfos"/>
抱着试试看的态度,楼主启动了程序,结果发现成功了。至此,楼主意识到,是spring配置文件里的路径有问题,于是楼主去搜了搜(spring 扫描多jar包里的@entity ),发现了很久以前就有人在各论坛提问过此问题,但都无疾而终。楼主此时郁闷了,总不能要用上面原始的方法吧。无意中,楼主发现了这么一篇文章,看截图:
虽然就那么一句话,但是楼主突然想起,之前每次打jar包的时候,都会看到这个选项,由于不知道什么用途,一直是不选择这项的。冥冥之中感觉也许就是这里的问题,于是重新打jar包,果然成功了。
楼主把两种方式的jar包对比了一下,目录结构看不出有任何差别呀。于是楼主抱着刨根问底的态度去查了一下
Add directory entries,这次的目的性就比较明确了,于是很快就找到了原因。过程中发现了一遍解释的很好的文章,因此楼主就不再赘述了,有兴趣的童鞋可以戳连接去看一下:
http://blog.csdn.net/wangpeng047/article/details/8202353
后记:问题的解决办法很简单,但是从最初的现象到问题根源追查下来还是花费了一些时间的,记录下来,希望能帮到遇到此类问题的小伙伴。