3.2.2.6. 移植您的 Hibernate 3.3.x 应用程序到 Hibernate 4.x


  1. 映射 Hibernate text 类型为 JDBC LONGVARCHAR

    在 Hibernate 3.5 以前的版本里,text 类型被映射为 JDBC CLOB。Hibernate 4 里引入了一个新的 Hibernate 类型materialized_clob,将 Java String 属性映射为 JDBC CLOB。如果您的应用程序里有属性需要将 type="text" 映射为 JDBC CLOB,您必须这样:
    1. 如果您的应用程序使用了 hbm 映射文件,请将这个属性修改为 type="materialized_clob"
    2. 如果您的应用程序使用了注解,您应该将 @Type(type = "text") 替换为 @Lob
  2. 复查代码以找出返回值类型的修改

    数字型组合标准的 Projection 现在返回的是 HQL 对应类型的值。因此,org.hibernate.criterion 里的下列 projection 的返回类型已经有了改动。
    1. CountProjectionProjections.rowCount()Projections.count(propertyName)Projections.countDistinct(propertyName) 里的修改,countcount distinct projection 现在返回的是 Long 型值。
    2. 由于 Projections.sum(propertyName) 里的修改, sum projection 现在返回依赖于属性类型的值。

      注意

      修改程序代码失败可能导致 java.lang.ClassCastException
      1. 对映射为 Long、Short、Integer 或原始类型的属性,将返回 Long 值。
      2. 对映射为 Float、Double 或原始浮点类型的属性,将返回 Double 值。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.