执行getHibernateTemplate().find() 不执行 不报错

本文探讨了在使用hibernate查询数据库时遇到NoClassDefFoundError异常的排查过程,从检查表映射类注解、字段类型、hibernate配置等入手,最终通过使用Throwable捕获异常,定位到问题原因与解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间紧,简洁写下:

 

在调试模式下,使用hibernate查询数据库,当执行到

List list = getHibernateTemplate().find("from Person");时,程序就挂掉了,而且也报任何错误。

 

首先想到用exception来捕获,但捕获不到异常。

 

于是开始下面的检查,表的映射类的注解是否写对,字段类型是否正确,hibernate的配置是否正确,数据源是否正常获得,使用session.createQuery("from Person")是否能查询成功等等,但猜测都被否定掉。虽然以上做法好像和问题没有直接联系,但也是没有办法的办法

 

最后用Throwable捕获,竟然是

java.lang.NoClassDefFoundError: antlr/ANTLRException

 

项目下原来有个antlr-3.2.jar,但ANTLRException是在antlr-2.7.6.jar


但这个异常Exception应该可以捕获到呀,为什么一开始没有捕获到,俺现在也不知道

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值