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;
分享到:
相关推荐
`Example`查询主要依赖于`org.hibernate.criterion.Example`类,它允许你基于一个实例对象创建查询条件,从而检索出数据库中所有符合该实例属性的对象。下面通过具体的代码示例来说明`Example`的基本使用: ```java...
3. **Restrictions**:`org.hibernate.criterion.Restrictions` 类提供了一系列静态工厂方法,用于创建 Criterion 对象。 4. **Order**:`org.hibernate.criterion.Order` 接口用于指定排序规则。 #### 三、创建 ...
例如,创建一个 Criteria 实例 org.hibernate.Criteria 接口表示,可以使用 Criteria 的 add(Criterion criterion) 方法来添加查询条件。Criterion 可以使用 Restrictions 工具类来创建,例如使用 eq、ge、between ...
- **Example**:一种特殊的`Criterion`,允许通过实体对象实例化,实现基于对象的查询。支持忽略大小写、模糊匹配等特性。 - **Projection**:用于聚合查询和分组,例如计算平均值、最大值等。`Projections`类提供...
Criterion 的实例可以通过 Restrictions 工具类来创建,Restrictions 提供了大量的静态方法,如 eq(等于)、ge(大于等于)、between 等来方法的创建 Criterion 查询条件(SimpleProjection 实例)。Example 的创建...
这里,`Example.create(s)`会根据`s`对象的属性生成查询条件,查询所有`giftortoy`字段为"2"的学生对象。 2. Query By Criteria (QBC) QBC是Criteria API的核心,它使用`Criteria`、`Criterion`、`Order`和`...
Example exampleUser = Example.create(u).ignoreCase().enableLike(MatchMode.ANYWHERE); ``` Projection接口用于处理查询结果,比如计算平均值、计数、最大值、最小值和求和。SimpleProjection和ProjectionList...
**Example** 是一种特殊类型的Criterion,它基于一个实体对象创建查询条件。你可以忽略大小写,设置模糊匹配等,使得查询更加灵活。 **Projection** 是用于报表查询和聚合操作的接口。它定义了如何从数据库中提取...
然后可以设置一些过滤条件,例如 Example exampleUser = Example.create(u).ignoreCase().enableLike(MatchMode.ANYWHERE); // 忽略大小写, 对 String 类型的属性,无论在那里值在那里都匹配。 Projection 主要有 ...
例如,如果有一个`Student`类的对象`s`,其`giftortoy`字段为"2",那么通过`session.createCriteria(Student.class).add(Example.create(s)).list()`,可以获取所有`giftortoy`字段为"2"的学生记录。 2. QBC(Query...
Criterion 的实例可以通过 Restrictions 工具类来创建,Restrictions 提供了大量的静态方法,如 eq(等于)、ge(大于等于)、between 等来创建 Criterion 查询条件(SimpleExpression 实例)。除此之外,...
在上面的代码中,我们首先创建了一个 Criteria 对象,然后使用 `Example.create(s)` 方法创建了一个示例对象,最后使用 `list()` 方法来获取查询结果。 QBC(Query By Criteria) QBC 是一种基于条件的查询机制,...
通过Example.create()方法,你可以忽略大小写,启用模糊匹配等,这在处理基于对象属性的查询时非常有用。 Projection接口用于查询结果的投影,即指定查询返回的字段。SimpleProjection如avg(), count(), max(), min...
此外,`Example`类允许根据一个对象实例创建查询条件,这对于基于对象属性的模糊匹配非常有用。 `Projection`则用于构建报表查询,它可以获取查询结果的聚合信息,如平均值、计数、最大值、最小值或求和。`...
`Restrictions`工具类提供了丰富的静态方法来创建各种类型的`Criterion`实例,例如`eq`(等于)、`ge`(大于等于)、`between`(介于)等。 - **Projection**:用于指定查询返回的结果集的结构,它可以是聚合函数...