many-to-one无故引致一个Update语句

现有批次、批次产品两表,两者我只在批次产品中定义了一个many-to-one的关系

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
  
<class name="Supercargo.BatchItem,Supercargo" table="BatchItem">
    
<id name="ID" column="ID" type="Int64">
      
<generator class="native" />
    
</id>    
    
<many-to-one name="Batch" class="Supercargo.Batch,Supercargo" column="Batch_ID"/>  
    
<property name="ProductCode"  type="string"  length="50" /> 
    
<property name="IsConfirm" column="IsConfirm" type="Boolean" />   
  
</class>
</hibernate-mapping>

以下测试代码
SimpleExpression ex = Expression.Eq( "Batch.ID",1);
SimpleExpression ex2 
= Expression.Eq( "ProductCode""00005");
ICriterion crion 
= Expression.And(ex,ex2);
ICriteria cri 
= session.CreateCriteria(typeof(BatchItem));
cri.Add(crion);
IList list 
= cri.List();        

ITransaction transaction 
= session.BeginTransaction();

transaction.Commit();

却不知何故产生了一个Updata Batch的语句
NHibernate :SELECT this.ID as ID1_, this.IsConfirm as IsConfirm1_,  FROM BatchItem this left outer join Batch batch1_ on this.Batch_ID=batch1_.ID WHERE this.ProductCode = @p0

NHibernate :UPDATE Batch SET Title = @p0, AccepterName = @p7 WHERE ID = @p8

真是莫名呀!请大家指点一二。谢谢
posted @ 2006-02-17 11:43  生命体验之kevin-Y  阅读(1844)  评论(2编辑  收藏  举报