fastSpring one-to-many 学习日记

来源:互联网 发布:网络黄金egd合法吗 编辑:程序博客网 时间:2024/06/11 22:29


舉個例子,比如客戶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"/>


是不是这句没有配置对??

原创粉丝点击