Hibernate version:
1.0.2.0
Mapping documents:
Parent.hbm.xml 
NHibernate中使用generator为assigned的问题<?xml version="1.0" encoding="utf-8" ?>
NHibernate中使用generator为assigned的问题
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
NHibernate中使用generator为assigned的问题  
<class name="HYLQ.Core.Domain.Parent, HYLQ.Core" table="Parent">
NHibernate中使用generator为assigned的问题    
<id name="Id" column="Id" unsaved-value="0">
NHibernate中使用generator为assigned的问题      
<generator class="assigned" />
NHibernate中使用generator为assigned的问题    
</id>
NHibernate中使用generator为assigned的问题    
<property name="Title" type="String" length="200" />
NHibernate中使用generator为assigned的问题
NHibernate中使用generator为assigned的问题    
<bag name="Childs" lazy="true" table="Child" inverse="true" cascade="all" 
NHibernate中使用generator为assigned的问题            access
="NHibernate.Generics.GenericAccessor, NHibernate.Generics" >
NHibernate中使用generator为assigned的问题      
<key column="pid" />
NHibernate中使用generator为assigned的问题      
<one-to-many class="HYLQ.Core.Domain.Child, HYLQ.Core" />
NHibernate中使用generator为assigned的问题    
</bag>
NHibernate中使用generator为assigned的问题    
NHibernate中使用generator为assigned的问题  
</class>
NHibernate中使用generator为assigned的问题
</hibernate-mapping>


Child.hbm.xml
NHibernate中使用generator为assigned的问题<?xml version="1.0" encoding="utf-8" ?>
NHibernate中使用generator为assigned的问题
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
NHibernate中使用generator为assigned的问题  
<class name="HYLQ.Core.Domain.Child, HYLQ.Core" table="Child">
NHibernate中使用generator为assigned的问题    
<id name="Id" column="Id" unsaved-value="0">
NHibernate中使用generator为assigned的问题      
<generator class="assigned" />
NHibernate中使用generator为assigned的问题    
</id>
NHibernate中使用generator为assigned的问题    
<property name="Memo" type="String" length="200" />
NHibernate中使用generator为assigned的问题    
<many-to-one name="Parent" column="pid" class="HYLQ.Core.Domain.Parent, HYLQ.Core"
NHibernate中使用generator为assigned的问题            access
="NHibernate.Generics.GenericAccessor, NHibernate.Generics" />
NHibernate中使用generator为assigned的问题  
</class>
NHibernate中使用generator为assigned的问题
</hibernate-mapping>

测试代码:
NHibernate中使用generator为assigned的问题using (ISession session = TestCategory.Factory.OpenSession())
 

当我设置了
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,
后来就没有出现上述的情况了。

你们碰到过这种情况吗?



相关文章:

  • 2022-01-02
  • 2022-12-23
  • 2022-12-23
  • 2021-06-07
  • 2021-07-29
  • 2021-07-27
  • 2021-12-05
  • 2021-09-07
猜你喜欢
  • 2021-08-23
  • 2021-09-13
  • 2022-12-23
  • 2018-05-28
  • 2021-05-21
  • 2022-01-01
  • 2022-12-23
相关资源
相似解决方案