背景 ES在查询时如果数量太多,而每行记录包含的字段很多,那就会导致超出ES的查询上线,默认是100MB,但是很多场景下我们只需要返回特定的字段即可,那么如何操作呢。...String[] fields = {"字段1","字段2"}; sourceBuilder.fetchSource(fields,null); //把查询添加放入请求中...; response = client.search(request, RequestOptions.DEFAULT); //封装查询的信息...return hitList; } String[] fields = {“字段1”,“字段2”}; sourceBuilder.fetchSource(fields,null); 注意:字段不是实体类中的字段...,而是表中的名称,不是userStatus而是user_status 本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。
一、 背景描述 在项目交付中,经常有人会问“如何在数据库中查询表的创建时间?” ,那么究竟如何在GaussDB(DWS)中查找对象的创建时间呢?...创建测试表 创建测试表,用于后续查询测试。 --定义一个表,使用HASH分布。...select current_timestamp; 测试表创建完成后查看当前系统时间作为参考。 image.png 2. 查询创建时间 通过DBA_OBJECTS视图查看表对象创建时间。...列group_info。...datanode -N all -I all -c "audit_system_object=12303" 参数设置命令截图: image.png 设置成功: image.png 按照方法1中的流程创建并更新测试表
在NHibernate中经常遇到继承与关系数据库的ORMapping的问题,我之前的一篇博客(http://www.cnblogs.com/studyzy/archive/2011/08/16/2140675...使用单表继承可以不用Join多个表查询效率高,而且在Domain Model的属性提示到父类或者下降到子类时,数据库模型不用更改。...在NHibernate中经常会遇到通过父类的Repository来查询子类的情况,比如现在有一个抽象的Employee对象,下面有OfficeUser和Teacher两个具体的对象,这两个对象都有其特有的属性...,但是NHibernate会对其理解不一样,所以必须这么写,否则查询不出来。...以上是以最简单了例子说明了如果通过父类查询具体的子类的方法,实际项目中肯定比这个查询要复杂,但是只要记住了这三种查询的要点,结合其他条件就可以写出NHibernate能够理解的查询。
(7) /> schema: 数据库schema的名称 default-cascade:可选项,默认是none,一种默认的级联风格 auto-import:明确是否可以在查询中使用非限定类名...assembly:指定映射对象所在的assembly,一般情况指的是项目名称 namespace:所在命名空间 default-access:可选的,默认是property,表示NHibernate的读取数据列的策略...1.2.3 many-to-one 在Nhibernate中,多对一的配置是在一的一端,表示该类有一个外键导航。...首先,创建一个泛型模板类,并约束泛型为类: public class Repository where T: class { } 添加一个ISession属性,用来后续访问操作,并由构造方法赋值...(); } 其中 IQueryable是一个接口,表示这是一个可查询对象,通过Linq可以快捷的查询。
一级缓存 一级缓存就是 ISession 缓存, 在 ISession 的生命周期内可用, 多个 ISession 之间不能共享缓存的对象, 通过 ISessionFactory 创建的 ISession...在 NHibernate 的参考文档中, 对 ISession 的描述如下: A single-threaded, short-lived object representing a conversation..." usage="read-only" include="all"/> 这一句表示对实体类 HibernateTest.Models.Category 启用二级缓存, 在实际项目中, 可以根据需要对多个实体类启用二级缓存...也可以在实体类的 hbm 映射文件中配置使用二级缓存, 不过在 hibernate.cfg.xml 文件中统一配置是推荐的做法。...从二级缓存读/写数据 Refresh:向二级缓存写数据,想不从二级缓存读数据,通过在配置文件设置 cache.use_minimal_puts从数据库中读取数据时,强制二级缓存刷新 CacheRegion
前言 今天是NHibernate的第二篇内容,通过上一篇的内容,我们初步了解了NHibernate的创建和使用。这一篇,我继续探索NHibernate背后的秘密。嗯,就是这样。 1....提供了一个通过主键检索对象和导航链接查询对象时的一级缓存。也就是EF Core中的导航属性。...它们可能只是一些普通的POCO,仅仅是与ISession中关联起来了。只要ISession关闭了,这些对象就可以被分离出来然后可以在应用层的任意地方使用。...一个ISession可能会开启多个事务,Transaction scopes may be used instead(原话是这个,大意是可以改用事务作用域)。...实例状态 在NHibernate中,一个可持久化的对象有三种不同的状态,依据与持久化上下文之间的关系不同,其中ISession就是一个持久化上下文。
在 Java Spring 应用中使用 ASP.NET Core Identity 的数据库进行用户认证 使用 NHibernate 创建 Asp.Net Core 应用 ASP.NET Core Identity...根据 NHibernate.AspNetCore.Identity 中的说明, 创建一个示例项目, 需要注意的问题主要有: 使用 NHibernate.AspNetCore.Identity 提供的 sql...Net Identity 创建用户/管理, Spring 应用使用用户名/密码进行登录), 创建了一个自定义的 PasswordHasher 作为示例, 将密码用 SHA-256 进行散列存储, 仅作为参考..., 在实际项目中需要进一步选择更加安全的加密存储; 创建测试用户 使用 Identity 创建用户 admin 的示例代码如下: var user = await userManager.FindByNameAsync....NET 应用创建的数据表, 并且使用相同的 SHA-256 对密码进行散列存储。
开发过程 HNibernate将会有一些工具帮助你,如:生成schema,根据映射文件(Mapping file)生成类,并更新schema(一个新开发者的建议).然而,在本文档中,前提是你已经手动的数据库的创建喝...在数据库中创建把.Net类持久化的对应表. 2. 创建需要被持久化的.Net类. 3. 创建映射文件,以告诉NH怎样持久化这些类的属性. 4....步骤4:创建数据库配置文件 目前为止,我们还没有告诉NH到哪儿去找数据库.最直接的方法就是在你程序的配置文件中给NH一个部分,就是这样: 在代码里面使用NHibernate是很简单的事情: 1. 创建一个Configuration对象. 2....创建一个Session连接到你设定的数据库. 4. 载入,保存和查询你的对象. 5.
最常见的一个例子就是在搜索框中,用户输入了一部分关键字,系统可以通过用户的输入进行左匹配,找出相关的结果列出来。...假设我们现在有个表YCMRSALE,其中有个字段MATNR存储了料号信息,如果我们要从这个表中查询出以AB开头的料号,如果使用NHibernate,那么我们常用的写法有: //QueryOver的写法...同样以YCMRSALE表举例,如果我们有另一表matnr,该表中的matnr列存储了不完整的料号,现在需要将两个表join起来,使用matnr列进行左匹配,那么我们的SQL可以写成: select *...如果我们要改写成like的形式,那么就需要对matnr表中的matnr列进行处理,将特殊字符进行替换,将~%_[]这几个字符都替换掉。...end else begin set @result+=@c; end set @i+=1; end return @result end 然后在查询中调用这个自定义的函数即可
一级缓存 一级缓存就是 ISession 缓存, 在 ISession 的生命周期内可用, 多个 ISession 之间不能共享缓存的对象, 通过 ISessionFactory 创建的 ISession...在 NHibernate 的参考文档中, 对 ISession 的描述如下: A single-threaded, short-lived object representing a conversation..." usage="read-only" include="all"/> 这一句表示对实体类 HibernateTest.Models.Category 启用二级缓存, 在实际项目中, 可以根据需要对多个实体类启用二级缓存...也可以在实体类的 hbm 映射文件中配置使用二级缓存, 不过在 hibernate.cfg.xml 文件中统一配置是推荐的做法。...以上是在项目中用到的二级缓存相关知识的整理, 肯定不完整, NHibernate 的缓存还有更多的地方需要挖掘。
2、新建项目并添加引用,将NHibernate-3.3.0.GA-bin中的“Iesi.Collections.dll”与“NHibernate”引用到项目中,如图2所示复制Configuration_Templates...文件夹中的对应数据库配置文件,这里使用MSSQL,所以复制“MSSQL.cfg.xml”,并对NHibernate的配置信息适当修改 。...3、编写实体类(POCO,Plain Old CLR Objects),映射文件包含POCO类映射到一个或者多个数据库表的元数据信息。User.cs文件如下所示。.../事务开始 ITransaction transaction = session.BeginTransaction(); //执行HQL查询...UserDAL中的方法。
其中:李永京的博客http://www.cnblogs.com/lyj/tag/NHibernate/ 内容最为丰富。而且在李哥的博客里面学了很多东西,在此致谢! ...通俗讲,就是我们操作实体类,然后让ORM框架自动映射到数据库中。 而Nhibernate就是:.Net环境下实现ORM的技术的一个框架! ...第一步:设计数据库中的表。建立一个User表。...第四步:创建Nhibernate的配置文件:hibernate.cfg.xml 代码如下: 在Default.aspx 代码文件中添加如下代码 Configuration cfg = new Configuration(); cfg.Configure(Server.MapPath
NHibernate不仅仅管理.NET 类到数据库表的映射(包括.NET 数据类型到SQL 数据类型的映射),还提供数据查询和获取数据的方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据的时间...,其中People实体类中的字段要设置为virtual。每个文件的详细代码在下面介绍 (2) 在NH.Data层引用Nhibernate相关的DLL ?...首先,我们要从ISessionFactory中获取一个ISession(NHibernate的工作单元)。ISessionFactory可以创建并打开新的Session。...我们可以使用GoF23中的单例(Singleton)模式在程序中创建ISessionFactory。...这个实例我编写了一个辅助类NHibernateHelper 用于创建ISessionFactory并配置ISessionFactory和打开一个新的Session单线程的方法,之后在每个数据操作类可以使用这个辅助类创建
一、NHibernate简介 在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦、浪费时间的。NHibernate是一个面向.Net环境的对象/关系数据库映射工具。...由此可见,NHibernate不仅仅管理.Net类到数据库表的映射,还提供数据查询和获取数据的方法。因此采用NHibernate,可以大幅度减少开发时人工使用SQL处理数据的时间。...配置NHibernate (1)NHibernate的配置文件有两种:在桌面应用程序(WinForm)中为App.config,在网页应用程序(WebForm)中为web.config。...(1) 在类中声明NHibernate的Factory private static Configuration mCfg=new Configuration(); private static...NHibernate.ISessionFactory SessionFactory=null; (2) 在系统初始化的时候加载XML,并创建Factory mCfg.AddXmlFile(
在后续使用中,通过映射关系生成SQL语句(这一步跟EF是一致的),进而操作数据或者查询数据。 2. 初探 NHibernate 2.1 准备 先来个控制台项目,我起名为dataprovider。...NHibernate版本是 5.2.7 2.2 配置 需要创建一个项目用的配置文件:App.config...." type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/> 这段代码的含义是,在config...文件中添加一个 hibernate-configuration结点,结点的解析由类:NHibernate.Cfg.ConfigurationSectionHandler,所在包是NHibernate。...在App.config文件configuration结点中添加以下代码: nhibernate-configuration-2.2
初期开发过程中吸取了NBear与MySoft的一些精华并加入新思想,之后参考EF Lambda语法进行大量扩展。 经过数十个版本的更新迭代发布全新v2.0版本,支持动态列/表、分库/分表等。...开源地址:https://github.com/dotnet/ef6 六、NHibernate(国外) NHibernate 是一个成熟的开源对象关系映射器,适用于 .NET 框架。...开源地址:https://github.com/nhibernate/nhibernate-core 七、ServiceStack/ServiceStack.OrmLite(国外) 简单的 .NET 的快速...更好的参数替换支持,包括从对象属性中获取命名参数。 通过使用 DynamicMethod 生成消除 Linq 和快速属性分配来获得出色的性能。 查询语言是好的 ole SQL。...(V5) 用于记录异常、安装值转换器和将列映射到没有属性的属性的挂钩。
为了保险起见,我们上网查询一下。 查询结果: 查询结果是,他们俩是【文件智能提示功能】用的。...调查结果: 对象与数据库的映射是保存在XML文件中的,于是我配置XML映射文件如下。 该XML文件的属性,要求设置其生成操作为【嵌入的资源】。 但我怕它丢失,还给他设置了始终复制的属性。...这里测试了下,貌似不改名不好使,配置文件内容如下 【PS:我始终没搞懂,XML中的CFG代表什么意思。】 创建的那个类库。 我推断,Nherbinate是读这个配置文件,然后到这个程序集里,反射查询那些poco对象。...为什么说是探索之旅呢,因为,我也是首次配置Nhibernate,我平常更多的是使用Entity Framework。 文中使用了一些推断,猜测的词语。那是因为,真的是在推断的。
在 .NET Core 应用中使用 NHibernate NHibernate 最近发布了 5.1.3 版本, 支持 .NET Standard 2.0 , 这意味着可以在 .NET Core 2.0...应用中使用, 本文就已 WebAPI 应用为例, 介绍一下如何在 .NET Core 应用中如何使用 NHibernate 。...Include="NpgSql" Version="4.0.2" /> 3、 在项目中新建一个 Models 目录, 并创建实体类以及对应的 xml 映射文件, 代码如下...集成到 .NET Core 内置的依赖注入框架中: 6.1、 修改 Startup.cs 的 using 部分, 添加下面的语句: using Microsoft.Extensions.Logging...进行查询: // GET api/values [HttpGet] public ActionResult> Get() { using (var
,MySQL-FRONT ,Connector/Net(选择.Net&Mono) Nhibernate包可以在VS2015中下载 ,对MySql操作,我用的是MySQL-FRONT,注意要想实现和数据库的链接...先写一个简单的给你定义的数据库中添加一条元素的代码:(不使用Nhibernate的) 前提:先把该用的dll文件,添加到引用里面去不然,会连接不成功,之前下载的Connector/Net(选择.Net&...不要少任何一个,好了然后我还是利用刚才创建的数据库,先完善一下表,完善和如下图 ?...然后我们在工程下面新建两个文件夹:Model文件夹用来存放数据库表类和映射类,还有一个Manger类用来存放对数据库执行增删改查操作的类。...Nhibernate帮助类,使用Nhibernate连接数据库,用来得到sessionFactory,然后使用sessionFactory里面的session去操作数据库,代码如下: using System
领取专属 10元无门槛券
手把手带您无忧上云