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 distinct
projection 现在返回的是Long
型值。- 由于
Projections.sum(propertyName)
里的修改,sum
projection 现在返回依赖于属性类型的值。注意
修改程序代码失败可能导致java.lang.ClassCastException
。- 对映射为 Long、Short、Integer 或原始类型的属性,将返回 Long 值。
- 对映射为 Float、Double 或原始浮点类型的属性,将返回 Double 值。