当前位置: 首页 > 面试题库 >

预期IDENT的Hibernate HQL问题发现“ *”

微生阳平
2023-03-14
问题内容

我需要从相对表中获取全部数据,所以我正在使用这种方式(我会在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;
    }

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

org.hibernate.hql.internal.ast.QuerySyntaxException:期望IDENT, 在第1行第10列附近
找到“ * ” [SELECT R. FROM offerOrderProjectRel 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’)]

那么,如何使用hibernate从R列获取所有数据?


问题答案:

该方法createQuery需要一个HQL查询字符串。

HQL是一种面向对象的查询语言

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

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

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

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')


 类似资料:
  • 问题内容: 我需要从相对表中获取全部数据,所以我正在使用这种方式(我会在sql中使用它) 启动此代码后,我得到该错误: org.hibernate.hql.internal.ast.QuerySyntaxException:期待IDENT,实测’* ‘近线1,列10 [SELECT R. FROM offerOrderProjectRel R,offerOrder O,项目p其中P.id = R.

  • 问题内容: 我需要从相对表中获取全部数据,所以我正在使用这种方式(我会在sql中使用它) 启动此代码后,我得到了该错误: org.hibernate.hql.internal.ast.QuerySyntaxException:期待IDENT,实测’* ‘近线1,列10 [SELECT R. FROM offerOrderProjectRel R,offerOrder O,项目p其中P.id = R

  • 我正在使用Gson库保存和检索玩家对象的ArrayList。 但当运行此活动时,我会得到以下错误日志: 原因:java。lang.IllegalStateException:应为BEGIN_数组,但在第1行第2列路径处为BEGIN_对象$ 这段代码怎么了?

  • 我使用jmeter来生成一个性能测试,为了保持简洁,我从一个json文件中读取初始数据,我有一个单线程组,在读取数据后,我在其中随机设置某些值,以防止需要时数据重复,然后我使用变量将最终数据传递给endpoint,这将最终在一个由endpoint接收的json主体中,它基本上将在数据库中生成一个新的事务。此外,我添加了一个常量计时器,在请求之间添加了7秒的延迟,测试持续时间为10分钟,没有上升,我

  • 不同的是,第一个列表包含5项,而第二个列表包含3项。使用的JVM是: 问题:为什么第二段代码不抛出java.util.concurrentModificationException?

  • 问题内容: Oracle Float双精度数据类型到Java Double数据类型的映射存在问题。使用Java Double数据类型时,hibernate模式验证器似乎失败。 避免这种情况的唯一方法是禁用架构验证,并希望架构与即将运行的应用程序同步。在投入生产之前,必须对其进行修复。 应用程序的环境: -Grails 1.2.1 -Hibernate-core 3.3.1.GA -Oracle 1