任何人都可以解释一下hibernate 2.X和hibernate 3.0之间的确切区别 我想不出相同的
由于
答案 0 :(得分:6)
通常版本增加包括更多功能和错误修复。这是hibernate 2> 3迁移指南,它可以给你一个想法。
http://community.jboss.org/wiki/HibernateCoreMigrationGuide30
你会看到他们做了一些事情,比如取消选中所有例外,在地方添加一些方法,在某些地方弃用某些方法,等等。
答案 1 :(得分:5)
一些关键点Hibernate 2.x V Hibernate 3.x:
Hibernet2.x版本增加到Hibernet3.x,即包含 更多功能和错误修复。 Hibernate 3.0与Hibernate 2.1不兼容。 Hibernet3.0中的更改经过精心设计 允许直接迁移代码和元数据。 可以运行Hibernate 2.x和Hibernate 3.x 在同一申请中 与Hibernet2.x相比,Hibernate3.x中的一些更改:
API更改:
Hibernate3包结构植根于org.hibernate
而不是net.sf.hibernate。这个重命名是允许的
Hibernate2和Hibernate3在同一个并排运行
应用。
某些已在Hibernate3中弃用的接口
被移动到org.hibernate.classic包中。
HibernateException和所有其他Hibernate异常都是
在Hibernate3中更改为未经检查的运行时异常。
与Hibernate2相比,Hibernate3提供了
ParameterizedType接口允许更好的可重用性
用户类型实现。
Hibernate3.x包装Blob和Clob实例,以允许类
使用Blob或Clob类型的属性进行分离,序列化,
反序列化,并传递给merge()。 Hibernate2.x没有
支持此功能。
元数据更改:
在Hibernate2.x中,最好使用lazy =“true”映射几乎所有类和集合,这是Hibernate3.x中的默认功能。在hibernate2.x中,应用程序需要明确指定
所有非惰性类和集合映射上的lazy =“false”。
在hibernet 3.x中,不推荐使用outer-join属性。使用fetch =“join”和fetch =“select”而不是outer-join =“true”和outer-join =“false”。
该元素已被半弃用,现在是首选的hibernate3.x。
优先。
是优选的。
与Hibernate2.x相比,hbm XML文件中的DTD引用在Hibernate 3.x中更改。
查询语言更改:
Hibernate3配备了全新的基于ANTLR的产品
HQL / SQL查询转换器。但是,Hibernate 2.1查询
解析器仍然可用。
可以通过设置Hibernate来选择查询解析器
property hibernate.query.factory_class。