关于在SSH框架整合时,使用hql语句查询出现 XXX is not mapped 的问题

在做SSH框架的整合过程中,新手往往会遇到这个问题。当我们使用hql语句查询时,控制台报错: XXX is not mapped。而此时,很多觉得英语不错的同学就会被自己搞晕。然后开始检查实体类的映射文件*.hbm.xml是否正确,是否将映射文件添加到spring的配置文件中,等等。然后高亮一通,仍不见效。

我们开始正题。大家都知道,Hibernate是一个让我们完全面向对象编程的框架。也就是说,我们对数据库数据进行操作的时候,实际是通过实体类。在Hibernate中的查询方式有3种:

(1)通过get或load方法直接以对象的形式查询数据。这种用法一般用于查询所有属性。

(2)通过使用hql语句查询。此时我们需要通过使用类似getSession().createQuery(hql)的语句进行数据查询。

(3)通过使用sql语句查询。该方法和使用hql类似,即getSession().createSQLQuery(hql)语句。

由于我们查询时,使用的是hql。所以,我 们hql语句中的from后面应该紧跟对象名,而不是数据表名。另外还有一点,就是注意大小写。如果使用别名,可以使用别名.实体类属性名的方式查询符合条件的某个值,不使用别名,查询列也为属性名。这样就不会出现以上的错误了。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。