- 浏览: 112004 次
- 来自: ...
文章分类
最新评论
-
Juanjuel:
Django多表查询 -
chenokia:
那么在\grails-app\conf 下的DataSourc ...
Grails如何使用外部配置文件 -
viking2439:
有没有方法去指定用户去获得某个权限呢?
[django]总结Django中的用户权限模块
Hibernate version:
1.0.2.0
Mapping documents:
Parent.hbm.xml
Child.hbm.xml
测试代码:
当我设置了
chilid.Id =1的时候,则出现了
Test method TestProject1.TestCategory.AddParentChild threw exception: NHibernate.HibernateException: SQL insert, update or delete failed (expected affected row count: 1, actual affected row count: 0). Possible causes: the row was modified or deleted by another user, or a trigger is reporting misleading row count..
跟踪执行的SQL语句后,发现并不是Insert Child,而是Update Child。
当我将chilid.Id =1注释后,就正常,不过chilid.Id他用 unsaved-value="0"代替。
执行的SQL语句都是正常的。
而我在网上看到一些One2Many的例子中其中表的主键都是自增长的后非assigned的。
所以这个问题很是困惑,最后,自己写了一个自定义的Generator来生产ID,
后来就没有出现上述的情况了。
你们碰到过这种情况吗?
1.0.2.0
Mapping documents:
Parent.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="HYLQ.Core.Domain.Parent, HYLQ.Core" table="Parent">
<id name="Id" column="Id" unsaved-value="0">
<generator class="assigned" />
</id>
<property name="Title" type="String" length="200" />
<bag name="Childs" lazy="true" table="Child" inverse="true" cascade="all"
access="NHibernate.Generics.GenericAccessor, NHibernate.Generics" >
<key column="pid" />
<one-to-many class="HYLQ.Core.Domain.Child, HYLQ.Core" />
</bag>
</class>
</hibernate-mapping>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="HYLQ.Core.Domain.Parent, HYLQ.Core" table="Parent">
<id name="Id" column="Id" unsaved-value="0">
<generator class="assigned" />
</id>
<property name="Title" type="String" length="200" />
<bag name="Childs" lazy="true" table="Child" inverse="true" cascade="all"
access="NHibernate.Generics.GenericAccessor, NHibernate.Generics" >
<key column="pid" />
<one-to-many class="HYLQ.Core.Domain.Child, HYLQ.Core" />
</bag>
</class>
</hibernate-mapping>
Child.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="HYLQ.Core.Domain.Child, HYLQ.Core" table="Child">
<id name="Id" column="Id" unsaved-value="0">
<generator class="assigned" />
</id>
<property name="Memo" type="String" length="200" />
<many-to-one name="Parent" column="pid" class="HYLQ.Core.Domain.Parent, HYLQ.Core"
access="NHibernate.Generics.GenericAccessor, NHibernate.Generics" />
</class>
</hibernate-mapping>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="HYLQ.Core.Domain.Child, HYLQ.Core" table="Child">
<id name="Id" column="Id" unsaved-value="0">
<generator class="assigned" />
</id>
<property name="Memo" type="String" length="200" />
<many-to-one name="Parent" column="pid" class="HYLQ.Core.Domain.Parent, HYLQ.Core"
access="NHibernate.Generics.GenericAccessor, NHibernate.Generics" />
</class>
</hibernate-mapping>
测试代码:
using (ISession session = TestCategory.Factory.OpenSession())
{
int id = 1;
Parent parent = new Parent();
parent.Id = id;
parent.Title = "tetetet";
Child child = new Child();
child.Id = 1;
child.Memo = "222";
child.parent = parent;
parent.Childs.Add(child);
ITransaction trans = session.BeginTransaction();
try
{
session.Save(parent);
trans.Commit();
}
catch
{
trans.Rollback();
throw;
}
}
{
int id = 1;
Parent parent = new Parent();
parent.Id = id;
parent.Title = "tetetet";
Child child = new Child();
child.Id = 1;
child.Memo = "222";
child.parent = parent;
parent.Childs.Add(child);
ITransaction trans = session.BeginTransaction();
try
{
session.Save(parent);
trans.Commit();
}
catch
{
trans.Rollback();
throw;
}
}
当我设置了
chilid.Id =1的时候,则出现了
Test method TestProject1.TestCategory.AddParentChild threw exception: NHibernate.HibernateException: SQL insert, update or delete failed (expected affected row count: 1, actual affected row count: 0). Possible causes: the row was modified or deleted by another user, or a trigger is reporting misleading row count..
跟踪执行的SQL语句后,发现并不是Insert Child,而是Update Child。
当我将chilid.Id =1注释后,就正常,不过chilid.Id他用 unsaved-value="0"代替。
执行的SQL语句都是正常的。
而我在网上看到一些One2Many的例子中其中表的主键都是自增长的后非assigned的。
所以这个问题很是困惑,最后,自己写了一个自定义的Generator来生产ID,
后来就没有出现上述的情况了。
你们碰到过这种情况吗?
发表评论
-
IBatisNet系列-介绍篇
2006-03-25 14:56 981IBatisNET从名字就可以看出,他是从Java的IBati ... -
IBatisNet系列二-QuickStart篇
2006-03-25 14:59 936本节我参考官方网站上的Quick Start Guide,网址 ... -
IBatisNet系列-执行存储过程
2006-03-25 15:24 1123映射xml文件书写如下 <?xml version=& ... -
IBatis.Net系列-Mapped Statements的语法
2006-03-29 15:25 852语法:<statement id="state ... -
Castle- Startable Facility 简单理解
2006-03-30 17:56 842最近在研究Castle开源项目,就下午学习Startable ... -
IBatis.Net系列-多参数的SQL语句的配置
2006-04-15 12:15 1419由于本人对IBatis.Net的并不是很精通,也是在边学边工作 ... -
MonoRail学习-介绍篇
2006-04-24 10:22 722刚刚结束了使用Castle MonoRail的一个项目,所以想 ... -
MonoRail学习-入门实例篇
2006-04-24 11:51 1270MonoRail学习目录实例代码下载:/Files/maply ... -
MonoRails学习- Layouts
2006-04-24 12:14 791MonoRail学习目录实例代码:/Files/maplye/ ... -
MonoRail学习-Component
2006-04-24 13:30 694MonoRail学习目录在我们asp.net中,经常有界面代码 ... -
Which Style of Workflow When?[转]
2006-05-24 16:58 719http://blogs.msdn.com/davegreen ... -
WF in Asp.Net
2006-05-26 11:19 936这几天在研究Windows Workflow Foundati ... -
WF学习-Console Workflow Application
2006-05-26 16:51 888环境必备:.NET Framework 2.0VS.Net 2 ... -
WF学习-WorkFLow中的参数
2006-05-27 15:46 1115系统和WorkFlow交互有很多种方式,今天介绍的是通过Wor ... -
Castle ActiveRecord.chm
2006-05-31 18:06 724收集 TerryLee's Tech Space 和 SHY5 ... -
使用UserControl时,在Page中定义方式
2006-06-24 10:02 878我们通常,会将一些通用的页面模块作成用户控件,然后加载到页面中 ... -
ASP.Net2.0中自定义控件在page中的注册
2006-06-24 14:15 787今天在网上看到ASP.Net 2.0中注册自定义控件的好方法, ... -
Asp.Net中NHiernate的Session的管理
2006-06-26 11:08 644NHibernate中的Session,在我的理解似乎就相当于 ... -
GridView使用一些记录
2006-06-30 10:45 911现在有个项目开始使用ASP.NET 2.0开发,在开发过程中关 ... -
NHiernate中自定义Generator
2006-07-04 13:50 876我的这个自定义的Generator设置如下: <g ...
相关推荐
Nhibernate使用教程中文文档,Nhibernate使用教程中文文档
对于以数据为中心的程序,开发人员往往是在数据库中使用存储过程来实现商业逻辑,这种情况下NHibernate可能不是最好的解决方案,但对于那些基于.NET,并且能够实现OO业务模型和商业逻辑的中间层应用,NHibernate是最...
Kiler博客翻译的NHibernate中文技术文档教程 附有原来的英文的NHibernate文档
NHibernate 参考文档手册 chm,NHIBERNATE-符合.Net习惯的关系数据库持久化,手册目录摘要: 前言 1. 第一个NHibernate应用程序 1.1. 开始NHibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. ...
NHibernate2.0中文文档 NHibernate2.0中文文档 NHibernate2.0中文文档
nhibernate 源码nhibernate 源码nhibernate 源码nhibernate 源码
NHibernate中的Session示例源代码,适合对NHibernate的使用有一定的了解,并想了解NHibernate源代码及其软件结构的人。
NHibernate的中文API,,有用的可以看看~
nhibernate c#nhibernate c#nhibernate c#nhibernate c#nhibernate c#nhibernate c#nhibernate c#
一切准备就绪后,开始,编译运行,出现问题了,报一个什么finsalConnection无法转变为IDBConnection, 在网上查资料,搞了半天,网上说什么sqlite的dll有多个,要用什么旧的那个dll,谁知哪个,生气中. 去运动运动,回来收拾里!...
NHibernate 中文文档 中文手册,英语不太好的朋友可以参考
Fluent nHibernate就是为简化nHibernate的配置而诞生,使用Fluent nHibernate可以使nHibernate的配置工作用C#代码完成,而无需用实体的XML文件,极大的方便是用nHibernate的工作量。 本文件于2012-5-4下载于Fluent ...
NHibernate3.2 官方源代码 + 使用例子 NHibernate3.2 官方源代码 + 使用例子 NHibernate3.2 官方源代码 + 使用例子 NHibernate3.2 官方源代码 + 使用例子 NHibernate3.2 官方源代码 + 使用例子
NHIBERNATE - 符合.Net习惯的关系数据库持久化 NHibernate参考文档 2.0.0 -------------------------------------------------------------------------------- 目录 前言 1. 第一个NHibernate应用程序 1.1. ...
本手册是使用NHibernate时手头必备的快速参考,是中文版,希望对大家有所帮助
NHibernate 入门之旅教程 PDF版,写这个小书也算是对自己学习NHibernate的一个总结吧。再次向对NHibernate陌生的朋友介绍一下NHibernate,它是一个面向.NET 环境的对象/关系数据库映射工具。用来把对象映射到基于SQL...
A simple utility to generate NHibernate mapping files and corresponding domain classes from existing DB tables. Features: 1. Supports Oracle, SqlServer, PostgreSQL, MySQL, SQLite, Sybase, Ingres, ...
提供WinForm和web例子 同时提供一个代码生成器
Nhibernate 中文文档~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
使用与.net开发的NHibernate框架,这个版本是比较老,但是比较经典的。 我也是使用这个来在.net开发的。给大家共享一下。