NHibernate 2.0.0 Alpha 1 悄悄地发布了
2008-03-31 17:11
274 查看
NHibernate源于非常优秀的基于Java的Hibernate关系型持久化工具。可是从2007年11月26日发布的1.2.1GA版本不是很好的支持VS2008。今天负责NHibernate开发的Ayende Rahien发布了NHibernate 2.0.0 Alpha 1,我们可以从这里下载,相信不久正式版会更好,先下载尝鲜一下。
下面列表列出了一些改进:
新特性
增加了一个类映射到多张表的联接映射元素
表和继承策略
针对PostgreSQL dialect的HQL函数‘current_timestamp’,‘str’和‘locate’
VetoInterceptor - 通过IInterceptor接口取消删除、更新、插入的调用
在HQL查询语句中使用常量
增加NHibernate使用一个鉴别器对每个子类一张表的支持
增加对子查询的分页支持
在自定义的SQL查询里的自动类型发现
增加了 OnPreLoad和OnPostLoad生命周期事件
增加了 ThreadStaticSessionContext
增加了 标记to
增加了 foreign-key="none",虽然父表不具备not-found="ignore"。(这和SQL Server不相干)
增加了 DetachedQuery
ExecuteUpdate支持原生的SQL查询
来自Hibernate的特性:
移植了 Actions, Events和Listeners
移植了 StatelessSession
移植了 CacheMode
移植了 Statistics
移植了 QueryPlan
移植了 ResultSetWrapper
移植了 Structured/Unstructured cache
移植了 SchemaUpdate
移植了 Hibernate.UserTypes
移植了 Hibernate.Mapping
移植了 Hibernate.Type
移植了 EntityKey
移植了 CollectionKey
移植了 TypedValue
移植了 SQLExceptionConverter
移植了 Session Context
移植了 CascadingAction
重大变化:
NHibernate.Expression命名空间更改为NHibernate.Criterion
NHibernate.Property命名空间更改为NHibernate.Properties
没有事务外的AutoFlush -- 数据库事务不是可选的,数据库的所有通信都有一个事务,不管是读还是写数据
将忽略配置节,使用配置节代替(注意它们有不同的XML格式)
配置值不再需要前缀“hibernate.”,如果你以前指定“hibernate.dialect“,现在只要使用".dialect”
接口修改-IItnterceptor更改为匹配Hibernate 3.2的Interceptor
对所有的命名查询在初始化的时候执行验证,任何无效的查询会抛出异常
NHibernate在SQL Server上查询count(*)返回是长整形(long)
SaveOrUpdateCopy返回一个新的实体实例,不会更改原始实体
修改了接口INamingStrategy
NHiberate.Search -Index/Store属性移到了Attributes命名空间
修改了IType、IEntityPersister、IVersionType -- 对此感兴趣的可能只是对NHibernate疯狂热爱的人
需要的时候必须包含括号
修改了接口IBatcher
修复的缺陷:
修复了HQL查询的表达式映射
修复了里面有一个 ;里面有一个 导致的异常
不支持限制大小的SQL dialects不支持多条件分页
修复了MsSql2005 dialect在多个处理器的计算机上有限制的字符串排序不正确的问题
修复了当在另一个子表达式中使用SimpleSubqueryExpression时得到的是NullReferenceException的问题。
修复了当删除一个包含空值的对象时引发的空引用异常
修复了在复杂联接表的重复列名
修复了MultiQuery在所有的查询强制使用参数
修复了当参数包含一个逗号和使用MaxResults时concat函数不能正常工作
修复了在MSSQL 2005 dialect 使用表达式分页不能正常工作
修复了OersustebtEnumType不正确的处理具有零值定义的枚举
修复了当没有使用SetFirstResult()时SetMaxResults()返回至少一行
修复了在SQL Server 2005的GetLimitSring 使用总计排序的缺陷
修复了SessionImpl.EnableFilter当已经启用的时候返回错误的过滤器
修复了Generated Id不能用于MySQL
修复了一对一不能延迟加载
修复了不会生成悲观锁定的FOR UPDATE语句
改进:
Postgre Dialect增加对Guid的支持
查询语句中支持注释
ISession增加了Merge和Persist
SQL Server支持IFF
IdBag现在支持Identity列
多条件(Criteria)现在使用结果转换器
处理key-many-to-one 键和找不到资源
可以在映射中指定抽象类
指南:
选择使用Restrictions而不是Expression类来定义Criteria查询。
子项目:
增加了NHibernate.Validator
增加了NHibernate.Shards
NHibernate.Search更新到和Hibernate Search 3.0相匹配
条件API:
允许检查、遍历、克隆和转换ICriteria以及DetachedCriteria
引入CriteriaTransformer 类
GetCriteriaByPath、GetCriteriaByAlias
增加了DetachedCriteria.For
增加了多条件
Projections现在可以将参数传递到生成的SQL语句。
增加了从Criteria中调用(HQL概念的)Sql函数的支持
增加了ConstantProjection
增加了CastProjection
能够使用IProjection作为ICriterion的参数
代理验证的支持更好:
现在支持internal字段的检查
更新了Castle.DynamicProxy2.dll,更好的支持.NET 2.0 SP1
SQL Lite:
支持多查询和多条件
支持子查询和limits
允许DROP TABLE IF EXISTS语句
PostgreSQL (Npgsql):
启用PostgreSQL的多查询支持
FireBird:
更好的全面支持
批处理:
更改了日志记录使其更清晰的表达所有的命令在单个批处理被发送到数据库。
AbstractBatcher现在使用侦听器,允许用户在准备好之前拦截和修改SQL。
错误处理:
在获取Int32Type中的值异常的更友好错误信息
当使用的子查询中包含一个不存在的属性时的更友好的错误信息
当带一个值类型调用UniqueResult()和查询返回null时抛出更有意义的异常
整体上更好的错误处理
更友好的调试日志
重构:
在框架内部的重要重构使用了泛型集合类代替非泛型的集合性。
对配置系统和hbm文件的解析进行了重要重构。
工厂:
增加了ProxyFactoryFactory
增加了BatchingBatcherFactory
下面列表列出了一些改进:
新特性
增加了一个类映射到多张表的联接映射元素
表和继承策略
针对PostgreSQL dialect的HQL函数‘current_timestamp’,‘str’和‘locate’
VetoInterceptor - 通过IInterceptor接口取消删除、更新、插入的调用
在HQL查询语句中使用常量
增加NHibernate使用一个鉴别器对每个子类一张表的支持
增加对子查询的分页支持
在自定义的SQL查询里的自动类型发现
增加了 OnPreLoad和OnPostLoad生命周期事件
增加了 ThreadStaticSessionContext
增加了 标记to
增加了 foreign-key="none",虽然父表不具备not-found="ignore"。(这和SQL Server不相干)
增加了 DetachedQuery
ExecuteUpdate支持原生的SQL查询
来自Hibernate的特性:
移植了 Actions, Events和Listeners
移植了 StatelessSession
移植了 CacheMode
移植了 Statistics
移植了 QueryPlan
移植了 ResultSetWrapper
移植了 Structured/Unstructured cache
移植了 SchemaUpdate
移植了 Hibernate.UserTypes
移植了 Hibernate.Mapping
移植了 Hibernate.Type
移植了 EntityKey
移植了 CollectionKey
移植了 TypedValue
移植了 SQLExceptionConverter
移植了 Session Context
移植了 CascadingAction
重大变化:
NHibernate.Expression命名空间更改为NHibernate.Criterion
NHibernate.Property命名空间更改为NHibernate.Properties
没有事务外的AutoFlush -- 数据库事务不是可选的,数据库的所有通信都有一个事务,不管是读还是写数据
将忽略配置节,使用配置节代替(注意它们有不同的XML格式)
配置值不再需要前缀“hibernate.”,如果你以前指定“hibernate.dialect“,现在只要使用".dialect”
接口修改-IItnterceptor更改为匹配Hibernate 3.2的Interceptor
对所有的命名查询在初始化的时候执行验证,任何无效的查询会抛出异常
NHibernate在SQL Server上查询count(*)返回是长整形(long)
SaveOrUpdateCopy返回一个新的实体实例,不会更改原始实体
修改了接口INamingStrategy
NHiberate.Search -Index/Store属性移到了Attributes命名空间
修改了IType、IEntityPersister、IVersionType -- 对此感兴趣的可能只是对NHibernate疯狂热爱的人
需要的时候必须包含括号
修改了接口IBatcher
修复的缺陷:
修复了HQL查询的表达式映射
修复了里面有一个 ;里面有一个 导致的异常
不支持限制大小的SQL dialects不支持多条件分页
修复了MsSql2005 dialect在多个处理器的计算机上有限制的字符串排序不正确的问题
修复了当在另一个子表达式中使用SimpleSubqueryExpression时得到的是NullReferenceException的问题。
修复了当删除一个包含空值的对象时引发的空引用异常
修复了在复杂联接表的重复列名
修复了MultiQuery在所有的查询强制使用参数
修复了当参数包含一个逗号和使用MaxResults时concat函数不能正常工作
修复了在MSSQL 2005 dialect 使用表达式分页不能正常工作
修复了OersustebtEnumType不正确的处理具有零值定义的枚举
修复了当没有使用SetFirstResult()时SetMaxResults()返回至少一行
修复了在SQL Server 2005的GetLimitSring 使用总计排序的缺陷
修复了SessionImpl.EnableFilter当已经启用的时候返回错误的过滤器
修复了Generated Id不能用于MySQL
修复了一对一不能延迟加载
修复了不会生成悲观锁定的FOR UPDATE语句
改进:
Postgre Dialect增加对Guid的支持
查询语句中支持注释
ISession增加了Merge和Persist
SQL Server支持IFF
IdBag现在支持Identity列
多条件(Criteria)现在使用结果转换器
处理key-many-to-one 键和找不到资源
可以在映射中指定抽象类
指南:
选择使用Restrictions而不是Expression类来定义Criteria查询。
子项目:
增加了NHibernate.Validator
增加了NHibernate.Shards
NHibernate.Search更新到和Hibernate Search 3.0相匹配
条件API:
允许检查、遍历、克隆和转换ICriteria以及DetachedCriteria
引入CriteriaTransformer 类
GetCriteriaByPath、GetCriteriaByAlias
增加了DetachedCriteria.For
增加了多条件
Projections现在可以将参数传递到生成的SQL语句。
增加了从Criteria中调用(HQL概念的)Sql函数的支持
增加了ConstantProjection
增加了CastProjection
能够使用IProjection作为ICriterion的参数
代理验证的支持更好:
现在支持internal字段的检查
更新了Castle.DynamicProxy2.dll,更好的支持.NET 2.0 SP1
SQL Lite:
支持多查询和多条件
支持子查询和limits
允许DROP TABLE IF EXISTS语句
PostgreSQL (Npgsql):
启用PostgreSQL的多查询支持
FireBird:
更好的全面支持
批处理:
更改了日志记录使其更清晰的表达所有的命令在单个批处理被发送到数据库。
AbstractBatcher现在使用侦听器,允许用户在准备好之前拦截和修改SQL。
错误处理:
在获取Int32Type中的值异常的更友好错误信息
当使用的子查询中包含一个不存在的属性时的更友好的错误信息
当带一个值类型调用UniqueResult()和查询返回null时抛出更有意义的异常
整体上更好的错误处理
更友好的调试日志
重构:
在框架内部的重要重构使用了泛型集合类代替非泛型的集合性。
对配置系统和hbm文件的解析进行了重要重构。
工厂:
增加了ProxyFactoryFactory
增加了BatchingBatcherFactory
相关文章推荐
- 神州数码客户端linux版本alpha_1发布[神州数码认证客户端破解]
- silverlight1.0beta 和 silverlight1.1 alpha发布了.
- jQuery 1.4 Alpha 1 发布
- 三、mcg-helper发布V1.0.1-Alpha版本
- 《吃了么》Alpha版本发布说明
- IronPython 2.0 Alpha3 发布了
- Spark 2.3重磅发布;腾讯高性能图片框架LKImageKit开源;Spring Boot 2.0.0 发布
- JBoss Eclipse IDE 2.0.0 Beta发布
- Sharding-JDBC 2.0.0正式发布,分库分表 + 读写分离 + 数据治理一体化解决方案
- 团队作业5——测试与发布(Alpha版本)
- 团队作业5——测试与发布(Alpha版本)
- 团队作业5——测试与发布(Alpha版本)
- 【Sprint3冲刺之前】TD学生助手——alpha版发布
- [导入]JsWiki 0.0.1 Alpha 发布
- NHibernate 1.0 Released 版本发布了
- XINS 3.1.0 Alpha2 发布,远程 API 调用规范
- talent-thread-pool-2.0.0发布:java线程池框架
- 最好的生日礼物:Wolfram|Alpha今日发布
- PHP 5.5.0 Alpha5 发布
- hadoop3.0可用【 GA】版发布与alpha1版比较有哪些不同