`
fanjf
  • 浏览: 296037 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

【异常】org.springframework.orm.hibernate3.HibernateQueryException

    博客分类:
  • Java
 
阅读更多

今天新同事遇到一个异常,通过如下方法做一个单元测试:

/**
     * 通过HQL语句,取得该条件下的记录数量
     * @param hql
     * @return
     */
    public Long getCountByQueryString(final String hql) {
        return (Long) getHibernateTemplate().execute(new HibernateCallback() {
            public Object doInHibernate(Session session) throws HibernateException,
            SQLException {
                Query query = session.createQuery(hql);
                return query.uniqueResult();
            }
        });
    }

 

因为原来的注释没有这么明确指出是用HQL入参,所有同事写了SQL执行查询,结果报错:

org.springframework.orm.hibernate3.HibernateQueryException: T_CC_L3_4S_Info is not mapped;

 

我看了下,猜到应当是SQL与HQL的不同导致的,于是,我换了成HQL查询:

String hql = "select count(*) from FoursInfo "。
结果还是报错:

org.springframework.orm.hibernate3.HibernateQueryException: FoursInfo is not mapped;

 

查了好一会,才发现表:T_CC_L3_4S_Info,对应的实体Bean是 FoursShopInfo ,而FoursInfo 是接口的Bean,

而且没有对应关系表导致。

 

从这件小事,我们应该吸取教训,不要想当然的以为表的名称和实体bean名称一致,当然,我们还是尽量保持表名和实体类命名的一致,这样才符合Java规范:见名知意!

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics