如何测试HQL查询编译?

时间:2014-01-10 10:14:14

标签: hibernate testing

我有许多从配置XML文件生成的HQL查询(~2000)。

当然,进行涵盖所有这些案例的集成测试会很棒,但不幸的是,在我公司认为测试是个好主意的时代之前,这是旧代码。

编写涵盖所有这些文件的完整集成测试现在显然超出了范围。但是,查找导致错误查询(例如from SomeRandomUnmappedClassselect propertyThatDoesNotExist from SomeClass)的配置文件会产生很大帮助。没有设置参数并且不与实际数据库通信的快速“编译检查”应该可以解决问题。但是怎么做呢?

(顺便说一下:我被困在古老的Hibernate 3.3.2上)

1 个答案:

答案 0 :(得分:0)

实际上这很简单:因为你有一个集成测试设置,无论如何都可以用HSQLDB启动hibernate上下文,你可以执行:

session.createQuery(hql);

这将返回一个查询对象,通常您将设置参数然后执行查询。但是,在createQuery - 调用期间,已执行所需的检查。如果出现错误则抛出异常。只需切掉参数设置和执行!

(有时解决方案太明显了; - ))