昨天,同事问我为什么分页功能不能用了?报如下错误:
2009-07-07 08:56:38,593 ERROR [JDBCExceptionReporter.java:101] - Every derived table must have its own alias
经询问,才了解他们项目组在新的数据库上进行测试,原来是Oracle,现在使用MySql5.0进行测试。
经查看框架代码,确认不太可能是框架的问题以后,我考虑是否可能改了数据库,却没有修改Hibernate对应的方言(Dialect)!经验证,果然是此问题,将方言改为:org.hibernate.dialect.MySQLDialect,故障排除!
Dialect就是HQL和具体数据库SQL之间的翻译官,让一个学阿拉伯语的翻译来翻译日文,那不出问题才怪!
附:
http://www.diybl.com/course/3_program/java/javaxl/2007123/89540.html
https://www.hibernate.org/hib_docs/v3/api/org/hibernate/dialect/package-summary.html