希望IDENT找到"*"的Hibernate HQL问题 [英] Hibernate HQL issue expecting IDENT found "*"

查看:120
本文介绍了希望IDENT找到"*"的Hibernate HQL问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要从相对表中获取全部数据,所以我正在使用这种方式(我会在sql中使用它)

I need to go whole datas from relative table so I'm using somethink like this (i would use it in sql)

    private static final String SELECT_OOPR_TO_SEND = "SELECT R.* " +
                                                      "FROM offerOrderProjectRel R, offerOrder O, project P " +
                                                      "WHERE P.id = R.project_id and O.id = R.offer_order_id " +
                                                      "and O.type = 'ORDER' and (P.status = 'PENDING' or P.status ='PROTECTED')" ;
; 


    @SuppressWarnings("unchecked")
    public List<OfferOrderProjectRel> findAllOfferOrderToSendToSalesmans() {
        Query q = getSession().createQuery(SELECT_OOPR_TO_SEND);
        List<OfferOrderProjectRel> list = q.list();
        return list;
    }

启动此代码后,我得到了该错误:

After lauching this code i'm getting that error :

org.hibernate.hql.internal.ast.QuerySyntaxException:期望IDENT, 在第1行第10列[SELECT R.中找到"* " R,offerOrder O,项目P WHERE P.id = R.project_id和O.id = R.offer_order_id和O.type ='ORDER'和(P.status ='PENDING'或 P.status ='PROTECTED')]

org.hibernate.hql.internal.ast.QuerySyntaxException: expecting IDENT, found '*' near line 1, column 10 [SELECT R. FROM offerOrderProjectRel R, offerOrder O, project P WHERE P.id = R.project_id and O.id = R.offer_order_id and O.type = 'ORDER' and (P.status = 'PENDING' or P.status ='PROTECTED')]

那么我如何使用休眠从R列获取所有数据?

So how can i obtain all datas from column R with hibernate?

推荐答案

方法

The method createQuery expects an HQL query string.

HQL是面向对象的查询语言.

HQL将SELECT R.*解释为选择对象R的成员字段*.

HQL interprets SELECT R.* as select the member field * of the object R.

但是*不是R的成员字段.是吗?..

But * is not a member field of R. Is it?..

要选择R的所有成员字段,请使用:

To select all the member fields of R use:

SELECT R
FROM offerOrderProjectRel R, offerOrder O, project P
WHERE P.id = R.project_id and O.id = R.offer_order_id
and O.type = 'ORDER' and (P.status = 'PENDING' or P.status ='PROTECTED')

这篇关于希望IDENT找到"*"的Hibernate HQL问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆