hibernate调试实录

以前用myeclipse,傻瓜化很方便,所以很多东西都没有去仔细注意,直到这几天把工具换为eclipse+jbosstools后,使用hibernate tools生成hbm.xml映射出现了问题:

org.hibernate.MappingException: Unknown entity: com.hiber.entity.#

 

很容易看出故障,不能查找到实体,google查了几个小时,得到各种原因,但都没能解决问题。

只好自己debug.

以前没有调试过这么大型的框架,一直没有多大把握,一般问题都是直接google就好了,现在是没办法:

第一步:下载下来hibernate source包,在eclipse中建立路径如下:

src

    java

        ....自己的代码

    debug

        ....hibernate源代码

把debug放入classpath中

第二步:找到问题点:

 org.hibernate.MappingException: Unknown entity:#
 at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:589)

打开SessionFactoryImpl类,定位到点,添加debug代码,检查对象内容,查找对象在此类中可改变的方法名,分别添加对象改变时候的内容显示代码

然后运行到程序点

这样,得到被添加的entity名字,然后检查输入,输入代码不写了,很容易判断 出cfg对象输入的。

第三部,判断原因:

 19:46:05,224 DEBUG SessionFactoryImpl:583 - -----------------Event

根据这个事实上就可以看出来时怎么回事了。

原来hibernate tools自动生成配置文件的时候添加了entity-name="Event" 而在程序运行上下文的时候,我们一般使用的是class名

 

dubug到此结束,所花时间不超过30分钟。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值