`

org.hibernate.criterion.Example 类

阅读更多
            ResourceAssign raExample = new ResourceAssign();
            raExample.TargetEffortEstimation.Id = effortestimationId;
            raExample.TargetFiscalYear.Id = fiscalYearId;
            raExample.TargetMemberResource.ID = memberResourceId;

            IList<ResourceAssign> ra = NHibernateSessionManager.Instance.GetSession().CreateCriteria(typeof(ResourceAssign), "ra")
            .Add(Example.Create(raExample))
            .List<ResourceAssign>();

------------------------------------------------------------------
            //ResourceAssign raExample = new ResourceAssign();
            //raExample.TargetEffortEstimation = EffortEstimationDao.GetById(effortEstimationId, false);
            //raExample.TargetFiscalYear =FiscalYearDao.GetById(fiscalYearId, false);

            ICriteria query = NHibernateSessionManager.Instance.GetSession().CreateCriteria(typeof(ResourceAssign), "ra")
          // .Add(Example.Create(raExample))
           .SetProjection(Projections.ProjectionList().Add(Projections.Sum("Month10"))
           .Add(Projections.Sum("Month11"))
           .Add(Projections.Sum("Month12"))
           .Add(Projections.Sum("Month1"))
           .Add(Projections.Sum("Month2"))
           .Add(Projections.Sum("Month3"))
           .Add(Projections.Sum("Month4"))
           .Add(Projections.Sum("Month5"))
           .Add(Projections.Sum("Month6"))
           .Add(Projections.Sum("Month7"))
           .Add(Projections.Sum("Month8"))
           .Add(Projections.Sum("Month9")));

            object[] os = (object[])(query.UniqueResult() ?? new float[12]);
            float[] f = new float[12] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            for (int j = 0; j < 12; j++)
            {
                f[j] = (float)Convert.ToDouble(os[j] ?? 0);
            }

            return f;

----------------------------------------------------------------------

            StringBuilder sbSQL = new StringBuilder("SELECT ");
            sbSQL.Append("SUM(MANMONTH_10) AS s1, SUM(MANMONTH_11) AS s2, ");
            sbSQL.Append("SUM(MANMONTH_12) AS s3, SUM(MANMONTH_01) AS s4, ");
            sbSQL.Append("SUM(MANMONTH_02) AS s5, SUM(MANMONTH_03) AS s6, ");
            sbSQL.Append("SUM(MANMONTH_04) AS s7, SUM(MANMONTH_05) AS s8, ");
            sbSQL.Append("SUM(MANMONTH_06) AS s9, SUM(MANMONTH_07) AS s10, ");
            sbSQL.Append("SUM(MANMONTH_08) AS s11, SUM(MANMONTH_09) AS s12");

            sbSQL.Append(" FROM RESOURCE_ASSIGN INNER JOIN MEMBERRESOURCE ON RESOURCE_ASSIGN.FK_MEMBERRESOURCE_ID = MEMBERRESOURCE.MEMBERRESOURCE_ID");
            sbSQL.Append(" INNER JOIN TEAM ON MEMBERRESOURCE.FK_TEAM_ID = TEAM.TEAM_ID");
            sbSQL.Append(" WHERE (RESOURCE_ASSIGN.FK_FISCAL_YEAR_ID =:fyid) AND (TEAM.FK_DIVISION_ID =:depid)");

            IQuery sqlQuery = NHibernateSessionManager.Instance.GetSession().CreateSQLQuery(sbSQL.ToString())
             .AddScalar("s1", NHibernateUtil.Single)
             .AddScalar("s2", NHibernateUtil.Single)
             .AddScalar("s3", NHibernateUtil.Single)
             .AddScalar("s4", NHibernateUtil.Single)
             .AddScalar("s5", NHibernateUtil.Single)
             .AddScalar("s6", NHibernateUtil.Single)
             .AddScalar("s7", NHibernateUtil.Single)
             .AddScalar("s8", NHibernateUtil.Single)
             .AddScalar("s9", NHibernateUtil.Single)
             .AddScalar("s10", NHibernateUtil.Single)
             .AddScalar("s11", NHibernateUtil.Single)
             .AddScalar("s12", NHibernateUtil.Single)
             .SetInt64("fyid", fiscalYearId)
             .SetInt64("depid", departmentId);

            object[] os = (object[])(sqlQuery.UniqueResult() ?? new float[12]);

            float[] f = new float[12] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

            for (int j = 0; j < 12; j++)
            {
                f[j] = (float)Convert.ToDouble(os[j] ?? 0);
            }

            return f;
分享到:
评论

相关推荐

    Hibernate中Example的用法

    `Example`查询主要依赖于`org.hibernate.criterion.Example`类,它允许你基于一个实例对象创建查询条件,从而检索出数据库中所有符合该实例属性的对象。下面通过具体的代码示例来说明`Example`的基本使用: ```java...

    hibernate criteria的使用方法

    3. **Restrictions**:`org.hibernate.criterion.Restrictions` 类提供了一系列静态工厂方法,用于创建 Criterion 对象。 4. **Order**:`org.hibernate.criterion.Order` 接口用于指定排序规则。 #### 三、创建 ...

    Hibernate中Criteria的完整用法.docx

    例如,创建一个 Criteria 实例 org.hibernate.Criteria 接口表示,可以使用 Criteria 的 add(Criterion criterion) 方法来添加查询条件。Criterion 可以使用 Restrictions 工具类来创建,例如使用 eq、ge、between ...

    Criteria的完整用法.pdf

    - **Example**:一种特殊的`Criterion`,允许通过实体对象实例化,实现基于对象的查询。支持忽略大小写、模糊匹配等特性。 - **Projection**:用于聚合查询和分组,例如计算平均值、最大值等。`Projections`类提供...

    Hibernate的Criteria用法总结.doc

    Criterion 的实例可以通过 Restrictions 工具类来创建,Restrictions 提供了大量的静态方法,如 eq(等于)、ge(大于等于)、between 等来方法的创建 Criterion 查询条件(SimpleProjection 实例)。Example 的创建...

    hibernateCriteria的使用.docx

    这里,`Example.create(s)`会根据`s`对象的属性生成查询条件,查询所有`giftortoy`字段为"2"的学生对象。 2. Query By Criteria (QBC) QBC是Criteria API的核心,它使用`Criteria`、`Criterion`、`Order`和`...

    Hibernate的Criteria用法总结

    Example exampleUser = Example.create(u).ignoreCase().enableLike(MatchMode.ANYWHERE); ``` Projection接口用于处理查询结果,比如计算平均值、计数、最大值、最小值和求和。SimpleProjection和ProjectionList...

    Hibernate中Criteria的完整用法

    **Example** 是一种特殊类型的Criterion,它基于一个实体对象创建查询条件。你可以忽略大小写,设置模糊匹配等,使得查询更加灵活。 **Projection** 是用于报表查询和聚合操作的接口。它定义了如何从数据库中提取...

    Hibernate中Criteria的使用

    然后可以设置一些过滤条件,例如 Example exampleUser = Example.create(u).ignoreCase().enableLike(MatchMode.ANYWHERE); // 忽略大小写, 对 String 类型的属性,无论在那里值在那里都匹配。 Projection 主要有 ...

    Hibernate查询方法之探析.doc

    例如,如果有一个`Student`类的对象`s`,其`giftortoy`字段为"2",那么通过`session.createCriteria(Student.class).add(Example.create(s)).list()`,可以获取所有`giftortoy`字段为"2"的学生记录。 2. QBC(Query...

    Hibernate - DetachedCriteria 的完整用法

    Criterion 的实例可以通过 Restrictions 工具类来创建,Restrictions 提供了大量的静态方法,如 eq(等于)、ge(大于等于)、between 等来创建 Criterion 查询条件(SimpleExpression 实例)。除此之外,...

    Hibernate中Criteria的用法

    在上面的代码中,我们首先创建了一个 Criteria 对象,然后使用 `Example.create(s)` 方法创建了一个示例对象,最后使用 `list()` 方法来获取查询结果。 QBC(Query By Criteria) QBC 是一种基于条件的查询机制,...

    Hibernate中Criteria的用法详解

    通过Example.create()方法,你可以忽略大小写,启用模糊匹配等,这在处理基于对象属性的查询时非常有用。 Projection接口用于查询结果的投影,即指定查询返回的字段。SimpleProjection如avg(), count(), max(), min...

    Hibernate的Criteria文档

    此外,`Example`类允许根据一个对象实例创建查询条件,这对于基于对象属性的模糊匹配非常有用。 `Projection`则用于构建报表查询,它可以获取查询结果的聚合信息,如平均值、计数、最大值、最小值或求和。`...

    Criteria.pdf

    `Restrictions`工具类提供了丰富的静态方法来创建各种类型的`Criterion`实例,例如`eq`(等于)、`ge`(大于等于)、`between`(介于)等。 - **Projection**:用于指定查询返回的结果集的结构,它可以是聚合函数...

Global site tag (gtag.js) - Google Analytics