nhibernate-Nhibernate使用CreateCriteria 如何实现 exists

问题描述

Nhibernate使用CreateCriteria 如何实现 exists
 public IList<Customer> QueryAllCustomerHasOrdersByHSql() {
            return Session.CreateQuery("from Customer c where exists( from Order a where a.Customer=c.Id)").List<Customer>();

        }

        public IList<Customer> QueryAllCustomerHasOrdersBySql() {
            return Session.CreateSQLQuery("select c.* from Customer c where exists(select b.Customer from `Order` b where b.Customer=c.CustomerId)")
                .AddEntity("c",typeof(Customer)).List<Customer>();
        }

                //public IList<Customer> QueryAllCustomerHasOrdersByCriteria() {
        //return Session.CreateCriteria(typeof(Customer))
        //    .Add(Restrictions.In("Customer",))

        //}

如何使用 CreateCriteria Restrictions 实现上面使用SQL的查询功能

解决方案

http://stackoverflow.com/questions/1752792/nhibernate-createcriteria-and-exists-clause

解决方案二:

@苏小喵
谢谢

时间: 2024-10-30 10:54:20

nhibernate-Nhibernate使用CreateCriteria 如何实现 exists的相关文章

[NHibernate]条件查询Criteria Query

 目录 写在前面 文档与系列文章 条件查询 一个例子 总结 写在前面 上篇文章介绍了HQL查询,我个人觉得使用ORM框架就是为了让少些sql,提高开发效率,而再使用HQL就好像还是使用sql,就觉得有点又回到使用sql的年代.但是完全不用hql也不是绝对的,HQL更接近原生态的sql,对于一些比较复杂的查询,HQL的作用就体现出来了.作为使用面向对象语言的程序员,有时更愿意采用面向对象的方式去思考问题,去实现查询,这就是本篇文章要学习的条件查询(Criteria Query). 文档与系列文章

[NHibernate]多对多关系(关联查询)

目录 写在前面 文档与系列文章 多对多关系关联查询 总结 写在前面 上篇文章介绍了nhibernate中对一对多关系进行关联查询的几种方式,以及在使用过程需要注意的问题.这篇文章对多对多关系的查询处理也采用上篇文章的描述方式进行说明. 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate]O/R Mapping基础 [NHibernate]集合

[NHibernate]一对多关系(关联查询)

目录 写在前面 文档与系列文章 一对多查询 总结 写在前面 上篇文章介绍了nhibernate的一对多关系如何配置,以及级联删除,级联添加数据的内容.这篇文章我们将学习nhibernate中的一对多关系的关联查询.前面文章中也介绍的nhibernate的查询:HQL,条件查询,原生SQL查询. 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernat

[NHibernate]视图处理

目录 写在前面 文档与系列文章 视图 一个例子 总结 写在前面 前面的文章主要讲了对物理数据表的操作,当然了Nhibernate同样可以操作视图,本文将讲nhibernate对视图操作的种种. 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate]O/R Mapping基础 [NHibernate]集合类(Collections)映射  [NH

[NHibernate]存储过程的使用(二)

目录 写在前面 文档与系列文章 创建对象 更新对象 总结 写在前面 上篇文章介绍了如何使用MyGeneration代码生成器生成存储过程,以及nhibernate中通过存储过程删除数据的内容,这篇文章将介绍如何创建对象,更新对象. 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate]O/R Mapping基础 [NHibernate]集合类(

[NHibernate]一对多关系(级联删除,级联添加)

目录 写在前面 文档与系列文章 一对多关系 一个例子 级联删除 级联保存 总结 写在前面 在前面的文章中,我们只使用了一个Customer类进行举例,而在客户.订单.产品中它们的关系,咱们并没有涉及,比如一个客户可以有一个或者多个订单,在数据库中变现为"主外键关系",有时也喜欢称为"父子关系".那么就让我们一起学习,在nhibernate中,是如何处理这种关系的吧? 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFacto

[NHibernate]事务

目录 写在前面 文档与系列文章 事务 增删改查 总结 写在前面 上篇文章介绍了nhibernate的增删改查方法及增加修改操作,这篇文章将介绍nhibernate的事务操作. SQL Server中的事务 在sql中使用begin transaction开启一个事务, rollback transaction用于回滚事务, commit transaction用于提交所有的事务处理结果,即确认事务的处理.事务处理可以将一组操作视为一个整体,只有全部语句都成功执行后,事务处理才算成功,若其中有一个

[NHibernate]组件之依赖对象

目录 写在前面 文档与系列文章 组件之依赖对象 一个例子 总结 写在前面 周一至周四一直在成都出差,也一直没有更新博客了,一回到家第一件事就是扒一扒最近博客园更新的文章,然后把想看的收藏了,大概有20篇左右,包括基础的js或者jquery(快速浏览,复习基础),java方面的(主要了解实现业务的思想),asp.net webform\mvc(webform的快速浏览,mvc深入理解)等等,从昨天晚上到今天上午算是花费了7.8个小时的时间把收藏夹里面的文章看了一边. 现在就继续NHibernate

[NHibernate]基本配置与测试

目录 写在前面 nhibernate文档 搭建项目 映射文件 持久化类 辅助类 数据库设计与连接配置 测试 总结 写在前面 一年前刚来这家公司,发现项目中使用的ORM是Nhibernate,这个之前确实没接触过,EF多少在项目中用过,想着既然都是ORM,应该语法上都差不多.当时也就是硬着头皮上的,刚开始也只能通过模仿别人的代码,再加上自己的理解,一些增删改查的方法,确实也被自己给搞出来了,现在回头想想,在项目中,用到的那些方法基本上就一个样,很少有变化.除非有些业务逻辑非常强的,自己搞不定,问一