【问题标题】:Hibernate native query shows exceptionHibernate 本机查询显示异常
【发布时间】:2015-03-10 23:55:29
【问题描述】:

我已经编写了用于从表中获取总用户数和月份的 hibernate 本机查询。
但它显示:

exception:Operand should contain 1 column(s)
org.hibernate.exception.DataException: could not execute query

谁能帮我解决这个问题:

  c.setProjection(Projections.projectionList()
     .add(Projections.sqlProjection("(select count(*), MONTH(Stored) from adbtbl_stat " 
     + "where Activity = 89 and YEAR(Stored) = 2015) as Count, month",
     new String[] { "Count", "month" }, new Type[] { LongType.INSTANCE, StringType.INSTANCE }))
     .add(Projections.groupProperty(month(stored))));

【问题讨论】:

    标签: java sql hibernate orm hibernate-criteria


    【解决方案1】:

    一个ProjectionList 可以包含多个SQLProjection(s),但每个SQLProjection 应该与一个且仅一个SQL 列相关联。

    您的 SQLProjection 尝试选择两列。

    尝试用简单的本机查询替换您的 Criteria 查询:

    Long activity = ...;
    int year = ...;
    
    Query q = entityManager.createNativeQuery(
        "select count(*) as Count, MONTH(Stored) as Month " +
        "from adbtbl_stat " +
        "where Activity = :activity and YEAR(Stored) = :year"
    );
    q.setParameter("activity", activity);
    q.setParameter("year", year);
    List<Object[]> result = (List<Object[]>) q.getResultList();
    

    【讨论】:

      猜你喜欢
      • 2018-07-13
      • 2020-06-29
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多