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

NHibernate条件:“ From”子句后的子查询

漆雕彬彬
2023-03-14
问题内容

如何使用Criteria编写以下SQL:

select b.Name as Batch, b.Capacity as Capecity, 
       a.tStudent as Admit, (b.Capacity-a.tStudent) as Availabe 
from ( 
 SELECT count(Id) as tStudent, BatchId FROM [dbo].[Student] group by BatchId) as a 
left join [dbo].[Batch] as b on a.BatchId = b.Id

问题答案:

要使用NHibernate,产生如下查询:

SELECT ... 
FROM 
( 
 SELECT ...
) AS a 
..

我们必须选择:

  1. 将子选择映射为实体。
  2. 创建原始SQL查询

第一种选择是创建一些view,并将其映射为一个实体。如果我们不喜欢视图(或无法创建视图),则可以使用NHibernate映射元素element的功能
<subselect>

<class name="MyEntity"... >
   <subselect>
    SELECT ...
    FROM ...
   </subselect>
   ...

第二种选择是关于使用NHibernate API创建本机/原始SQL:

session.CreateSQLQuery("SELECT ")

它没有从映射中获利,但是我们仍然可以应用参数,并从转换中获利…

9.3.5。本机SQL中的查询



 类似资料:
  • 问题内容: 我们正在开发一个使用EJB连接到数据库的Web应用程序。 在我们的数据库模型中,我们有一个移动设备表,另一个有功能表,最后一个有手机模型映射功能值的表。模型(id_model,…)功能(id_feature,…)model_features(id_model,id_feature,值) 我们想要执行一个查询,以按匹配特征的数量对模型进行排序。就是说,我们传递了一个要匹配的功能列表(即从

  • 问题内容: 我试图做这样的查询: 您可能会说,如果相同的提示还有其他父母,我想删除1015的父母关系。但是,这产生了一个语法错误: 我已经检查了文档,并独自运行了子查询,这一切似乎都已结束。任何人都可以找出这里有什么问题吗? 更新 :如以下回答所示,MySQL不允许在子查询中使用该条件删除要删除的表。 问题答案: 您无法指定要删除的目标表。 解决方法

  • MariaDB 子句用于从表中获取数据。它也被用来连接表,这将在后面章节中学习。 语法: 示例1: 假设要从表中检索所有学生信息。参考以下语句中,语句的用法 - 执行上面查询语句,得到以下结果 - 示例2: 从students表中选择一个特定的列。例如,要选择和列,如下查询语句 - 执行上面查询语句,得到以下结果 -

  • Hibernate 中最简单的查询语句的形式如下: from eg.Cat 该子句简单的返回 eg.Cat 类的所有实例。通常我们不需要使用类的全限定名,因为 auto-import(自动引入)是缺省的情况。所以我们几乎只使用如下的简单写法: from Cat 为了在这个查询的其他部分里引用 Cat,你将需要分配一个别名。例如: from Cat as cat 这个语句把别名 cat 指定给类Ca

  • 问题内容: 我正在尝试通过以下查询使用视图和表格 错误是 问题答案: SELECT AcId, AcName, PldepPer, RepId, CustCatg, HardCode, BlockCust, CrPeriod, CrLimit, BillLimit, Mode, PNotes, gtab82.memno FROM VCustomer AS v1 INNER JOIN gtab82

  • 问题内容: 我有两个表,我需要创建一个视图。这些表是: 我使用以下查询来执行此操作。不带“创建视图”部分的查询运行良好,但带有“创建视图”的查询则显示错误“视图的SELECT在FROM子句中包含子查询”。可能是什么问题和可能的解决方案: 问题答案: 根据文档: MySQL文档 SELECT语句在FROM子句中不能包含子查询。 解决方法是为每个子查询创建一个视图。 然后从您的视图中访问这些视图