当使用NHibernate查询表中的数据时,如果表中存在复合主键,如果没有在相应的实体类中重写Equals(),那么将会出现"Could not compile the mapping document:
TestCleanSnow.JkptGlxtUser.hbm.xml".当跟踪出错的内部信息的时候会发现,内部异常为"composite-id class must override Equals(): TestCleanSnow.JkptGlxtUserId"

解决办法:

在JkptGlxtUserId.cs这个实体类中重写Equals()方法如下:

  1. public override bool Equals(object obj)
  2. {
  3. return base.Equals(obj);
  4. }

复制代码

再次执行调用语句,发现还出现"Could not compile the mapping document: TestCleanSnow.JkptGlxtUser.hbm.xml".这个错误,但是跟踪内部异常为:InnerException = {"composite-id class must override GetHashCode(): TestCleanSnow.JkptGlxtUserId"}
到此很明显,在遇到复合主键的情况下,应该还得在JkptGlxtUserId.cs中重写GetHashCode(),代码如下:

  1. public override int GetHashCode()
  2. {
  3. return base.GetHashCode();
  4. }

复制代码

再次运行调用程序,OK了.

转载于:https://www.cnblogs.com/zjoch/archive/2012/01/31/2333877.html

nhibernate:composite-id class must override Equals()相关推荐

  1. hibernate关联映射_具有关联映射的Hibernate Composite ID

    hibernate关联映射 最近,我们面临着带有复合id字段的Hibernate关联映射的棘手情况. 我们需要与一对一和多对一进行双向关联.我们的拖曳表是" REPORT"和&qu ...

  2. 具有关联映射的Hibernate Composite ID

    最近,我们面临着带有复合id字段的休眠关联映射的棘手情况. 我们需要与一对一和多对一建立双向关联.我们的拖曳表是" REPORT"和" REPORT_SUMMARY&qu ...

  3. Item 9 Always override hashCode when you override equals HASHMAP扩展

    这个item的意思是,如果两个对象在你的equals的方法中「逻辑相等」了,那么就要让hashCode方法处理这两个对象的时候,也返回同样的hash.否则的话会造成一个问题,就是如果用Map,Set存 ...

  4. NHibernate Issues之1255:联合主键(composite-id)

    本节内容 概览 实例 参考资料 概览 这个系列是以博客形式整理关于NHibernate的Issues.记录一些零碎的小例子,通过零零碎碎的整理,可以巩固自己的知识和扩展我们的知识面.这些小例子也可以适 ...

  5. NHibernate in Action ch2 Hello NHibernate 读后

    (一)对象的标识以及Database到Object的映射 If two instances of Employee have the same identifier value, they repre ...

  6. 美团(Leaf)分布式ID生成器,好用的一批!

    不了解分布式ID的同学,先行去看<一口气说出 9种 分布式ID生成方式,面试官有点懵了>温习一下基础知识,这里就不再赘述了 美团(Leaf) Leaf是美团推出的一个分布式ID生成服务,名 ...

  7. C#中override和overload的区别

    重载应该叫overload,重写叫override:重载某个方法是在同一个类中发生的!重写是在子类中重写父类中的方法. 1.override:   父类:public virtual string T ...

  8. easyui treegrid获取父节点的id_超简单的分布式ID生成方案!美团开源框架介绍

    目录 阐述背景 Leaf snowflake 模式介绍 Leaf segment 模式介绍 Leaf 改造支持 RPC 阐述背景 不吹嘘,不夸张,项目中用到 ID 生成的场景确实挺多.比如业务要做幂等 ...

  9. Nhibernate 对view 查询的几种方法

    第一种方法: 写view的类,写hbm.xml映射文件. 对无主键的view的查询要注意:你要用复合主键,不能随便指定一个有重复数据的列,不然你取n条数据时总会取到n条这个值的第一条数据. 要么你就改 ...

最新文章

  1. LCD: 2D-3D匹配算法
  2. 大数据实验室(大数据基础培训)——基础概念
  3. 福利 | 50张第四届UBDC全域大数据峰会赠票大放送!
  4. linux视频教程之进程管理
  5. java解析excel文件_1.3.1 python解析excel格式文件
  6. DOM 元素对象解析
  7. 关于解决vensim9.2版本无法显示中文的办法
  8. 支付人必读:一文彻底搞清楚银联和现代支付系统运行过程
  9. 服务器网卡,10GE设备相关笔记
  10. 安卓玩机搞机-----没有第三方包 刷写第三方各种GSI系统 体验非官方系统
  11. UG/NX 装配克隆
  12. cgb2107-day17
  13. 【u025】贝茜的晨练计划
  14. Java毕设项目-OA办公系统
  15. 计算机网络实验三 CPT实验
  16. Apache log4j漏洞总结
  17. 股市中各种指标代表的含义
  18. ZZZ Project All 37 Product-国内最完整版
  19. 企业网盘目前最好用的文件收集工具
  20. 低头做事,抬头做人!

热门文章

  1. Python报错TypeError: ‘User‘ object is not iterable
  2. linux命令chmod如果当前用户属于多个组,那这个命令中的g指的是哪个组?按什么规则?
  3. 第8章:Hadoop再探讨
  4. [BUUCTF-pwn]——[OGeek2019]babyrop
  5. C++11新增的关键字decltype(auto)
  6. C++11与设计模式的交流
  7. spring和ejb2.x集成共享applicationContext.xml的问题
  8. Oracle的CASE语句和表达式
  9. npm学习(二)之如何防止权限错误
  10. 思维风暴 codeforces (1060A) Phone Numbers