`
x98zero
  • 浏览: 108837 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hibernate2升级到Hibernate3要注意的问题(转贴)

阅读更多
將隨時新增至這個文件中。

DTD 文件的引用


hibernate.cfg.xml
中對DTD文件的引用必須改變,在Hibernate 2中是這樣:

...
<!DOCTYPE hibernate-configuration
    PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"
>
...


Hibernate 3中必須這樣:

...
<!DOCTYPE hibernate-configuration PUBLIC
   
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
>
...



映射文件在Hibernate 2時是這樣:

...
<!DOCTYPE hibernate-mapping
    PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
>
...


Hibernate 3中是這樣:

...
<!DOCTYPE hibernate-mapping
    PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
...

 

package 的改變


Hibernate 2
API的頂層package名稱是net.sf.hibernate,在Hibernate 3中是org.hibernate,例如Hibernate 2中的net.sf.hibernate.SessionFactoryHibernate 3中改為org.hibernate.SessionFactory

取消 Session find()iterate() 方法


Session
中的find()方法被取消了,必須使用SessioncreateQuery()建立Query實例,並使用list()方法來取代。Sessioniterate()被取消了,由Query介面上的iterator()來取代,詳請看 Query.list()iterator()

HQL 新增語句


新增 update 語句

Query query = session.createQuery("update User set age=30 where id=1");
query.executeUpdate();


新增 delete 語句

Query query = session.createQuery("delete User where age<20");
query.executeUpdate();

自定義 insertupdatedelete


Hibernate 3
的映射文件中新增了<sql-insert><sql-update><sql-delete>三個標籤,您可以在這三個標籤中使用SQL自定義您的INSERTUPDATEDELETE,也就是儲存、更新、刪除資料時的行為,詳請看 自定義 insertupdatedelete

其它

  • Expression類別雖仍可使用,但新增Restrictions類別作為Expression類別的替代。
  • 新增 DetchedCriteria
  • 新增 動態模型(Dynamic Model
  • HibernateException 變為Checked exception
  • Interceptor 新增了幾個方法。
  • Lazy Initialization預設為 true,不想使用的話,必須在映射文件中設定lazy屬性為false
  • 可透過org.hibernate.tool.instrument.InstrumentTask.class檔進行buildtime bytecode instrumentation,實現屬性的Lazy Initialization

 原文出自:http://www.caterpillar.onlyfun.net/Gossip/HibernateGossip/Hibernate2ToHibernate3.html

分享到:
评论

相关推荐

    hibernate 2 升级参考文档

    本文主要讨论从Hibernate 2升级到Hibernate 3的过程中需要注意的关键步骤,这对于使用SSH(Spring、Struts和Hibernate)框架的项目尤其重要。 首先,升级的第一步涉及替换jar包。将旧版本的Hibernate 2.1.jar替换为...

    hibernate3.zip 包含hibernate3.jar

    这个`hibernate3.zip`压缩包包含了`hibernate3.jar`,它是Hibernate 3版本的核心库,包含了执行ORM(对象关系映射)所需的所有类和接口。 在Java开发中,Hibernate3主要提供了以下关键知识点: 1. **对象关系映射...

    Hibernate入门到精通

    "Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...

    hibernate3全部jar包:hibernate3.jar.zip 下载

    Hibernate3 是一个强大的Java持久化框架,它允许开发者将数据库操作与业务逻辑解耦,使得应用程序的开发更为简便。...但要注意,使用前需阅读并遵守jboss-LICENSE.txt中的许可条款,确保合法合规使用。

    Hibernate2和Hibernate3连接池配置.doc

    在Hibernate2中,Apache的DBCP连接池是官方推荐的,但在Hibernate3中,由于存在一些已知的问题,DBCP不再被推荐使用。官方建议如果在Hibernate3中必须使用DBCP,最好通过JNDI(Java Naming and Directory Interface...

    Hibernate3的依赖包

    Hibernate3是一个广泛使用的Java对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作,极大地简化了Java应用程序与数据库之间的交互。在这个"Hibernate3的依赖包"中,包含了运行Hibernate3应用...

    hibernate3必要jar包

    这个压缩包“hibernate3必要jar包”显然是针对Hibernate3版本的,已经去除了冗余的库文件,并确保包含所有必需的组件,以确保能够成功运行一个基于Hibernate3的应用程序。 以下是一些关于Hibernate3及其核心组件的...

    Hibernate5需要的jar包。

    2. **hibernate-entitymanager-5.x.x.jar**:提供对JPA(Java Persistence API)的支持,使得可以使用注解或者XML配置来定义实体类。 3. **hibernate-jpa-2.1-api-1.0.0.Final.jar**:这是JPA 2.1的API接口定义,...

    hibernate所需包:hibernate3,依赖包,JDBC

    标题和描述中提到的关键信息是“hibernate3”、“依赖包”和“JDBC”。这表明我们将讨论关于Hibernate ORM框架的第三版,它所需的依赖库,以及与Java数据库连接(JDBC)的关系。Hibernate是一个流行的Java持久化框架...

    hibernate3所需JAR包

    2. **Hibernate3依赖包**:为了使Hibernate3能正常工作,还需要一系列的依赖库,如日志库(如log4j)、反射库(如asm或 cglib)、XML解析库(如dom4j)等。这些依赖包通常以JAR的形式存在,如`commons-collections....

    struts2与hibernate3的完美整合

    整合Struts2和Hibernate3的主要目标是将用户的请求转发到Action,由Action调用Service层的业务逻辑,Service层再通过Hibernate3操作数据库。具体步骤包括: 1. **添加依赖**:在项目中引入Struts2和Hibernate3的JAR...

    Hibernate相关jar包括新版本jdk不兼容旧版本的jar.zip

    解决这种问题的一个常见方法是升级Hibernate到与新版本JDK兼容的版本。Hibernate通常会发布新版本来适应新的JDK,并修复已知的兼容性问题。因此,"解决Hibernate与jdk新版本不兼容的jar问题"可能是提供了一个升级后...

    最新版本的Struts2+Spring4+Hibernate4框架整合

    整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...

    hibernate3实例包

    **标题与描述解析** 标题提及的是“hibernate3实例包”,这表明我们将讨论...同时,它也可能包含有关如何集成Hibernate到现有应用程序中的指导。对于初学者或希望深入理解Hibernate的开发者来说,这是一个宝贵的资源。

    hibernate3源码

    Hibernate是一种Java语言下的对象...Hibernate不仅负责从Java类到数据库表的映射(还包括从Java数据类型到SQL数据类型的映射),还提供了面向对象的数据查询检索机制,从而极大地缩短的手动处理SQL和JDBC上的开发时间。

    Hibernate连接DB2

    ### Hibernate 连接 DB2 的实现方法与注意事项 #### 一、引言 在现代软件开发过程中,ORM(对象关系映射)框架...同时,还需要注意驱动版本的兼容性问题以及正确配置 Hibernate 相关参数,以避免潜在的异常情况发生。

    Hibernate3jar包

    **Hibernate3jar包详解** Hibernate 是一款开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。Hibernate3是其第三个主要版本,发布于2006年,相较于之前的版本,它引入了许多增强功能和...

    javaWeb项目由spring3、springmvc3、hibernate3升级到spring4最后一个版本需要jar.rar

    传统Javaweb SSH项目由spring3、springmvc3、hibernate3升级到spring4最后一个版本需要的jar包

    hibernate3 jar包

    使用这个"hibernate3 jar包",开发者可以享受到以下优势: - **简化数据库操作**:通过对象化的操作方式,降低了与数据库交互的复杂性。 - **提高代码可读性和可维护性**:通过映射,业务逻辑代码与数据库结构分离...

Global site tag (gtag.js) - Google Analytics