3.2.2.6. 移植您的 Hibernate 3.3.x 应用程序到 Hibernate 4.x
映射 Hibernate
text类型为JDBC LONGVARCHAR在 Hibernate 3.5 以前的版本里,text类型被映射为JDBC CLOB。Hibernate 4 里引入了一个新的 Hibernate 类型materialized_clob,将 JavaString属性映射为JDBC CLOB。如果您的应用程序里有属性需要将type="text"映射为JDBC CLOB,您必须这样:- 如果您的应用程序使用了 hbm 映射文件,请将这个属性修改为
type="materialized_clob"。 - 如果您的应用程序使用了注解,您应该将
@Type(type = "text")替换为@Lob。
复查代码以找出返回值类型的修改
数字型组合标准的 Projection 现在返回的是 HQL 对应类型的值。因此,org.hibernate.criterion里的下列 projection 的返回类型已经有了改动。CountProjection、Projections.rowCount()、Projections.count(propertyName)和Projections.countDistinct(propertyName)里的修改,count和count distinctprojection 现在返回的是Long型值。- 由于
Projections.sum(propertyName)里的修改,sumprojection 现在返回依赖于属性类型的值。注意
修改程序代码失败可能导致java.lang.ClassCastException。- 对映射为 Long、Short、Integer 或原始类型的属性,将返回 Long 值。
- 对映射为 Float、Double 或原始浮点类型的属性,将返回 Double 值。