Spring.Net+NHibernate 不再使用 XML 描述实体关系
2009-12-31 21:37
260 查看
个人对Spring 在java平台下的运用比较熟悉。并且已经是一年前了。
重拾Spring,但选择的是 Spring.Net 。
Java 平台下 Spring+Hibernate 是公认的黄金组合。
.NET 平台下 Spring.Net+NHibernate 也是企业架构最有前途的组合之一。
早前使用Hibernate 比较烦人的就是 编写实体关系映射的 XML 描述文件。
后来在Hibernate 3 以后就开始不再使用XML 改用 Annotation 注解,有点类似 Attributes 的方式。
同样 NHibernate 也有类似 Annotation 的实现。
在NHibernateContrib 项目下有一个子集 NHibernate.Mapping.Attributes 它可以使得我们不在编写XML 。
我在使用 Spring.Net+NHibernate 时发现 Spring.Net IOC 容器在创建 NHibernateSessionFactory
的时候只支持从程序集读取XML来加载对象映射关系,使得我们无法直接使用 Attributes。
解决办法
自定义一个 类 继承自 Spring.Data.NHibernate.LocalSessionFactoryObject
重写 父类的 AfterPropertiesSet() 方法
具体实现代码
重拾Spring,但选择的是 Spring.Net 。
Java 平台下 Spring+Hibernate 是公认的黄金组合。
.NET 平台下 Spring.Net+NHibernate 也是企业架构最有前途的组合之一。
早前使用Hibernate 比较烦人的就是 编写实体关系映射的 XML 描述文件。
后来在Hibernate 3 以后就开始不再使用XML 改用 Annotation 注解,有点类似 Attributes 的方式。
同样 NHibernate 也有类似 Annotation 的实现。
在NHibernateContrib 项目下有一个子集 NHibernate.Mapping.Attributes 它可以使得我们不在编写XML 。
我在使用 Spring.Net+NHibernate 时发现 Spring.Net IOC 容器在创建 NHibernateSessionFactory
的时候只支持从程序集读取XML来加载对象映射关系,使得我们无法直接使用 Attributes。
解决办法
自定义一个 类 继承自 Spring.Data.NHibernate.LocalSessionFactoryObject
重写 父类的 AfterPropertiesSet() 方法
具体实现代码
<object id="NHibernateSessionFactory" type="Dao.RepositoryDao.MyLocalSessionFactoryObject, Dao.RepositoryDao"> <property name="DbProvider" ref="DbProvider"/> <!--自定义LocalSessionFactoryObject中的属性 指实体类所在程序集的名称--> <property name="ModelAssemblyNames"> <list> <value>Domain.Model</value> </list> </property> <property name="HibernateProperties"> <dictionary> <entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/> <entry key="dialect" value="NHibernate.Dialect.MsSql2000Dialect"/> <entry key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver"/> <entry key="use_outer_join" value="true"/> <entry key="show_sql" value="false"/> <entry key="adonet.batch_size" value="10"/> <entry key="command_timeout" value="60"/> <entry key="query.substitutions" value="true 1, false 0, yes 'Y', no 'N"/> <entry key="proxyfactory.factory_class" value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/> </dictionary> </property> <property name="ExposeTransactionAwareSessionFactory" value="true" /> </object>
相关文章推荐
- Spring.net Dao的改进——使用属性类描述实体数据源
- 使用Spring.Net+NHibernate构建WCF应用
- 使用asp.net+NHibernate+Spring开发CMS系统(送源码)
- C#.NET使用NHibernate 1.0 XML映射使用中容易出错的地方全程记录(转)
- 我放弃spring.net & nhibernate 那烦琐的xml配置文档.我自己动手写一个东西.
- C#.NET使用NHibernate 1.0 XML映射使用中容易出错的地方全程记录
- ASP.NET MVC3 中整合 NHibernate3.3、Spring.NET2.0 使用AOP执行事务处理
- ASP.NET MVC3 中整合 NHibernate3.3、Spring.NET2.0 使用AOP执行事务处理
- Spring.NET实用技巧1——基于Prevalence下的NHibernate二级缓存使用技巧
- 使用Spring.Net+NHibernate构建WCF应用
- FastSpring.NET v4.1将使用Spring.NET1.3和NHibernate2.1
- Spring.NET 1.3.2 集成 NHibernate 3.2 - 2 - 配置使用 Spring.NET 的网站
- web.xml中Spring使用的ContextLoaderListener和SpringMVC的DispatcherServlet之间的关系
- 在Spring.Net中对于NHibernate.Caches.Prevalence的使用
- 使用 Visual C# .NET 通过 XPath 表达式查询 XML
- [转]ASP.NET Web API基于OData的增删改查,以及处理实体间关系
- aop(使用xml方式)(spring团队建议我们使用注解的方式)
- Spring.Net&amp;amp;amp;amp;amp;amp;NHibernate 学习
- IIS ,NET中"无法显示 XML 页。 使用 XSL 样式表无法查看 XML 输入。"问题的解决
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结