org.hibernate.MappingException: Unknown entity, 测试出的问题

今天hibernate黑了我一把, 将之前的hibernate工程拷贝建另一个工程,这回加个测试类,首先写几个测试怎删改查。

结果merge成功,findById, findAll,findByExample报错:

org.hibernate.MappingException: Unknown entity

确认不是配置错误,因为插入成功了。

试了半天搞不定,看之前的工程,没有测试类,心想是否测试类加载的问题?但是怎么merge可以呢?

后来试试直接运行程序,奇迹发生了,运行得好好的。

看来是测试环境造成的原因。我用的狗屎maven,估计又是这个造成的。

后来发现有个包common.collections有冲突,解决此问题后,发现findall可以,findById, findByExample仍然不行。看来还和包冲突有关。

最后只好源码跟踪,发现问题:

 

findById中

getSession().get(ENTITY_NAME, id)

ENTITY_NAME应该是类全名(含包名),而我的代码里却是类短名(不含包名)。

而hsql中应该是类短名。

这是myeclipse中自动生成的,想起来生成向导时没有写包名,导致如此。

放弃了,真BT的问题。花了我一下午。


Total views.

© 2013 - 2024. All rights reserved.

Powered by Hydejack v6.6.1