auto-import导致HQL的错误
来源:互联网 发布:小学老师 知乎 编辑:程序博客网 时间:2024/06/08 17:15
因为之前没怎么用过hibernate,第一次正儿八经地用,被一个HQL的错误折腾得够呛。
我的hql大致如下:
"from OrderDetail where accountID=:accountID and orderID=:orderID"
但是执行的时候总是报错,说是OrderDetail is not mapped,开始怀疑是我的hibernate配置文件出了问题,改了几次都不见效,后来用同样的配置文件往database里面insert一条记录成功了。那说明配置文件没错,问题就在hql的写法了。
于是:
加上as,"from OrderDetail as detail where detail.accountID=:accountID and detail.orderID=:orderID",没用看来不是这个问题。
后来google一下,发现大部分人提到可能的两个原因。第一是from后面不能是table名,应该是class name,而且是大小写敏感的,这个我没有设置错。第二个,是可以在hibernate配置文件中显示指定一下“hibernate.query.factory_class”属性。这个我开始没有设置,于是把它置为Hibernate3.0的查询翻译器org.hibernate.hql.ast.ASTQueryTranslatorFactory,问题依旧。再试Hibernate2.1的查询翻译器org.hibernate.hql.classic.ClassicQueryTranslatorFactory,也不行,错误提示倒是不一样了。
折腾了半天,后来想是不是得用class的full name,试了一下,将hql改成"from myPackage.OrderDetail where accountID=:accountID and orderID=:orderID",并且把show_sql打开,试了一下,还是不行,把打出来的sql拿出来一看,好像是where字句中的属性没有替换成数据库字段。最后没有办法,加上as,成功了。
"from myPackage.OrderDetail as detail where detail.accountID=:accountID and detail.orderID=:orderID"
后来一琢磨,想到底是什么原因导致需要class的packaged name呢?原来是这auto-import在捣鬼,因为在配置文件中auto-import被设为了false。晕。
- auto-import导致HQL的错误
- import其他包导致的json错误
- Hibernate的auto-import属性详解
- Hibernate的auto-import属性详解
- Hibernate的auto-import属性详解
- import 包的错误
- djcelery的import错误
- 大量AUTO-INC LOCK 导致的DeadLOCK
- Mysql5的auto Reconnect错误
- Mysql6的auto Reconnect错误
- IDEA的auto import 与 Scala的隐式转换
- IDEA的auto import 与 Scala的隐式转换
- import表时,表空间不足导致产生ORA-00604错误
- Hibernate auto-import属性 解决有同名实体的时候
- 解决import theano的错误
- XIB 导致的错误
- strlen导致的错误
- &导致的错误
- c++
- js使用ajax
- Corona 使你的iPhone和Android开发不再困难(lua)
- android开发之路3
- 数组的指针和数组元素的指针。
- auto-import导致HQL的错误
- TreeView小知识
- 在Eclipse中运行C++程序出现"Launch failed. Binary not foud"和"Program file not Specified"的问题
- vs2008添加连接静态库和动态库
- python文本处理
- How Browsers Work:Behind the Scenes of Modern Web Browser(II)
- UML 基础: 类图
- “NoHadoop”?——新一代海量数据架构分析
- USACO section1.2 Palindromic Squares