惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
小众软件
小众软件
D
Docker
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX
博客园 - 叶小钗
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
IT之家
IT之家
博客园 - 司徒正美
M
MIT News - Artificial intelligence
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog

博客园 - 鱼跃千里

Python抽奖程序 - 鱼跃千里 - 博客园 右键菜单添加CMD--备忘 - 鱼跃千里 - 博客园 windows 7安装sql server2005以及com (-1073737712错误)+ 8004e00f错误 要签约了 [转]虚方法和抽象方法 腾讯笔试 IE7不能支持Google的Google Suggest? 两个不错的生成图片验证码代码 继承类实例化时构造函数的执行顺序 FCKEditor的使用---起步 [转+自己修改]将 MS SQL Server 2005 SP2 整合到安装文件 Google AdSense 申请通过了 [转]发生 LC.exe 已经退出 代码-1 错误的解决方法 [转]VS2005 SP1集成版制作 DataList等控件嵌套绑定的一个需要注意的地方 为DataList和GridView内容项添加序号 超时时间已到。在操作完成之前超时时间已过或服务器未响应。 (.Net SqlClient Data Provider) [转]最佳ASP.NET编程习惯 DataList嵌套绑定数据
Nhibernate 2.0 学习笔记,关于hbm映射文件的重要性
鱼跃千里 · 2009-02-20 · via 博客园 - 鱼跃千里

        最近一直很懒了,所谓学习笔记也只是在看着NHibernate之旅系列文章导航 学习Nhibernate的过程中出现的问题

        当然,如果一直严格按照文章的做法来的话,是没有问题的,主要是我偷懒,用codesmith生成了一下hbm文件和实体映射类。生成后对照了一下,发现实体类完全不对,我没有看过NHB1.2,不知道是不是2.0的改进,现在2.0的实体类要简单多了,只需要类似这样的东东就可以了。

2.0

Code

1.2(用的是园子里下的那个模板,具体位置忘了)

Code

而且 hbm映射文件也要简洁点,并且一定要按照2.0的方式写,我就是偷懒用了代码生成器的,结果出了一个问题,搞了两天才发现。

2.0

Code

1.2

Code

开始,我不想自己写 hbm,就试着用1.2的HBM文件用了一下,HBQ等查询语句、方法,Save,Update,Delete方法都没有问题,我还以为可以一直用1.2的HBM文件呢,结果在测试SaveOrUpdate方法的时候,代码和李永京的全部一样,就是测试失败 出现了一个:a different object with the same identifier value was already associated with the session:0,of entity:Model.Entities.Customer.

网上搜了一下,据说用SaveOrUpdateCopy()方法或者session.clear()方法可以搞定,可是失败了。

好嘛,既然他说是有两个对象关联到了一个session,那我就单独测试一下SaveOrUpdate

自己的savaORupdate方法如下

Code

测试代码(主体)

Code

然后发现,Update的部分,数据库中的内容改变了,但是新添加的一个c1,没有插入到数据库中。

我汗,换个代码测试

Code

出现一个错误Batch update returned unexpected row count from update,Google了半天也没有办法。

我晕啊,我全部都是按照教程来的,怎么总是出奇怪的问题啊,突然想起我的HBM映射文件是用旧模板生成的,抱着试试看的心态,换上了2.0的hbm,竟然。。。。所有问题都没有了。

我。。。。无语了