fastSpring one-to-many 學習日記


舉個例子,比如客戶Customer和訂單Order是一對多的關系,那麼相應的hbm.xml配置為:
<bag name="Order" inverse="true" lazy="true" cascade="all-delete-orphan">
<key column="Customer_ID"/>
<one-to-many class="Entity.Order, Entity"/>
</bag>

<many-to-one name="Customer" class="Entity.Customer, Entity">
<column name="Customer_ID" length="12" sql-type="nvarchar" not-null="true"/>
</many-to-one>
CodeSmith,可以比較好的自動生成。這個工具比較方便,根據需要可對生成的hbm.xml稍作改動。前提是建好數據庫表的主外關系。
關於cascade="all-delete-orphan"這樣設置,NHibernate可以幫助完成以下三件事:
1.級聯保存或更新,相當於將cascade屬性設置成了"save-update"的情況。
2.級聯刪除,相當於將cascade屬性設置成了"delete"的情況。
3.刪除沒有父的所有子對象
相應的生成的實體類裏會有:private IList _orders 和 private Customer _customer
已經可以很清晰的看到一個客戶包含多個訂單,反過來也就是多對一的關系...。

 

 

1.添加mailInfo的文件。

2.模板生成的數據綁定列表有問題:
<INPUT type=checkbox value=0 name=IDS>

1對多可以了。

3。下面進行存儲過程調用,直接執行SQL 及事務處理。
3.1 事務,按示例可做出來,注意的就是,示例裏throws  異常後,就會自己回滾。
3.2存儲過程還沒無法調用。
3.3直接調用SQL,可以在,hbm.xml文件裏添加;如:
<query name="MailSendListTop100">
  <![CDATA[from MailSend mailSend where mailSend.MSendState = 0]]>
 </query>

3.4
在FastSpring.App.BLL.MailInfoManager 要想使用MailSendManager
首先聲明。  


        private IMailSendManager m_MailSendManager;
        public IMailSendManager MailSendManager
        {
            set
            {
                m_MailSendManager = value;
            }
        }
     
還要在配置文件裏添加:
 <!--Manager定義  -->
 <object id="MailInfoManager" type="FastSpring.App.BLL.MailInfoManager,FastSpring.App">
  <property name="MailInfoDAO" ref="MailInfoDAO"/>
  <!-- 自己添加的 -->
  <property name="MailSendManager" ref="MailSendManager"/>
  <property name="UserInfoManager" ref="UserInfoManager"/>
 </object>
呵呵,記好了,注入就是注入,是要麻煩點的,沒有像Castle那樣方便。


存儲過程還是無法調用。鬱悶中。。。
<!-- NHibernate 存儲過程的調用的實現 -->

    <property name="DBHelper" ref="DBHelper"/>


是不是這句沒有配置對??

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章