zoukankan      html  css  js  c++  java
  • 在sqlinsert中使用自定义的存储过程

    在NHibernate 1.2中可以通过<sql-insert></sql-insert>来自定义添加操作的SQL语句,自然也能使用存储过程。下面小奎就总结一下,在NHibernate中使用自定义存储过程来进行添加要注意的几点。
        第一是在<sql-insert></sql-insert>中写入exec ProcName.这一步就不用费话了。
        第二个要说的是参数。参数是按照你定义property的顺序自动填充的。所以,如果有一些属性不要传递到传递到存储过程中,一定记得标上insert="false"告诉NHibernate一下。ID会做为最后一个参数传递给存储过程,这一点要特别注意,写存储过程也要注意这一点。
        第三个要注意的地方是generator的设置。这个一定要设置成assigned。否则的话,存储过程不会调用,NHibernate会自动生成SQL语句来完成添加操作。
        还有一点是第三点设置引起的。当generator设置成assigned时记得一定要将id字段设置成一个大于0的数字(如果是ID是数据型的话)。否则保存操作将不能将对象保存到数据库。还有一点是如果generator设置成assigned,保存操作要放到一个事务中执行,否则也不能将它提交到数据库。这个主要是当generator设置成assigned时,ISession.Save(object)操作,并不会真正触发数据库操作,而是会等事务的ITransaction的Commit方法被执行才会真正触发数据库操作。如果不放到事务中执行,就在调用ISession.Save方法后,调用一下iSession.Flush方法。
  • 相关阅读:
    Ubuntu驱动程序开发2-Uboot命令使用
    Ubuntu驱动程序开发1-环境搭建
    STM32F4 串口IAP程序解析
    QT样式表(QSS)
    设备树常用OF函数
    UCOSIII在STM32f4上面的移植
    UCOS常用函数API
    MySQL学习——备份和还原
    JavaWeb学习——页面跳转方式
    Java问题记录——循环里的二次判断与状态更新
  • 原文地址:https://www.cnblogs.com/bqrm/p/1036356.html
Copyright © 2011-2022 走看看