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.SessionFactory在Hibernate 3中改為org.hibernate.SessionFactory。

取消 Session 中 find()、iterate() 方法


Session
中的find()方法被取消了,必須使用Session的createQuery()建立Query實例,並使用list()方法來取代。Session的iterate()被取消了,由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();

自定義 insert、update、delete


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

其它

  • 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 Envers审计问题:实战案例 摘要:本文探讨了从Spring Boot 2.7/Hibernate 5.6升级到3.2/6.1.3后,Hibernate Envers审计功能出现的问题。发现标记为insertable=false的属性不再被审计,表现为审计表中字段值为NULL。解决方案是使用实验性的@AuditMappedBy注解来正确处理关系映射,通过实例演示了如何配置一对多关系的审计功能。虽然该方案在当前版本有效,但需注意该注解的实验性质,建议持续关注官方文档更新。 阅读详情

相关推荐

hibernate升级到3.2带来EHCache的问题

NULL 博文链接:https://yongtree.iteye.com/blog/272293

Spring4 升级 spring5, Hibernate4 升级 Hibernate5 相关问题总结以及修改注意点

项目主体框架使用 spring4 以及 Hibernate4, 由于spring 升级到 5的大版本,附带的 Hibernate 也将被强迫升级。

weixin_44131922的博客 3471

【计算机图形学】Pov-Ray画的垃圾小车

效果: 代码: #include "colors.inc" #include "metals.inc" #include "glass.inc" //相机 //这个位置车子刚好落在草地上了 camera { location direction z*1.5 right x*image_width/image_height look_at

lishichengyan的博客 1749

Hibernate升级到5.4.18.final的过程踩过的坑

版本 Library Current Upgraded Hibernate-core 3.6.10.Final 5.4.18.final Hibenrate-valicator 4.2.0.Final 6.1.5.final 1. 抛javax.persistence.TransactionRequiredException异常如果没有事务时 javax.persistence.TransactionRequiredException: Executing

Harry的博客 1万+

MediaPipe实战:从零构建人脸关键点检测应用

本文详细介绍了如何使用Google的MediaPipe框架从零构建一个实时人脸关键点检测应用。文章深入剖析了MediaPipe的三段式检测流水线,提供了Android平台的完整实战教程,包括环境配置、模型加载、摄像头集成、关键点绘制以及性能调优指南,帮助开发者快速实现高效、跨平台的人脸AR特效与交互功能。

weixin_29100927的博客 343

构建多节点AI代理网络:OpenClaw协同框架与实战部署指南

在分布式系统与AI代理技术领域,多节点协同是提升智能体能力与扩展性的核心挑战。其原理在于通过设计清晰的通信协议与数据同步机制,使分散的智能体能够共享状态、知识与技能,从而实现1+1>2的群体智能。这一技术价值在于突破了单点AI的能力上限,为构建复杂、鲁棒且可扩展的自动化系统提供了基础。典型的应用场景包括跨设备任务编排、企业级工作流自动化以及大规模AI代理集群的管理。本文聚焦于OpenClaw这一开源AI代理框架,深入探讨如何利用模块化设计(如网状网络与任务控制中心)实现记忆共享与统一调度,解决多网关协同中的

weixin_42521032的博客 298

hibernate3升级hiberante4方法

怎么升级hibernate3 到hibernate4 及遇到的问题 1. 将原有hibernate3 jar全部删掉 2. 建议去网上下载完整的hibernate4.8 的jar,然后全部贴进去(不建议单独升级对应的jar,因为高版本可能会分拆低版本的jar,或者添加了依赖包) 3.遇到的错误 3.1 2016-03-01 04:34:24.072::WARN:  Fai

苦心人,天不负,有心者,事竞成。 4610

Power BI应用案例:淘宝用户行为分析实战

一、案例背景 基于千万级的淘宝用户的使用记录,对淘宝用户的行为进行分析,具体指标包括:日PV、日UV、小时PV、小时UV、不同用户行为的PV、用户购买次数分布、用户购买频次分布、活跃用户消费情况等。通过本案例,可以基本看看Power BI都能分析达到怎么样的效果。 二、数据来源及结构 阿里天池官方发布的1万用户在2014年双十二期间的行为记录,数据量达1200万+。 数据下载地址:...

灰哥数据智能的专栏 1万+

项目中Hibernate3 替换成 Hibernate4 部分步骤

最近项目组为了提高项目代码质量,于是借用阿里巴巴插件工具Alibaba code guidelines对项目代码进行扫描、诊断,以便修复。发现基础Dao类内使用到的很多Hibernate方法已废弃了,于是计划将项目现有的Hibernate3升级为Hibernate4。      说干就干,于是将pom.xml文件中引用的hibernate版本号升级为4.3.11.Final,以为就可以了。 步

lujianyou1222的博客 2406

2025年人形机器人产业研究

人形机器人是一种模仿人类外形、动作和行为的机器人,旨在替代或辅助人类完成各种任务。其显著特征包括人类外形、动作模仿和智能交互能力。根据形态和功能,人形机器人可分为小型、中型、大型以及服务型、工业型、救援型和娱乐型等类别。发展历程经历了初始阶段、高度集成系统阶段和突破性进展阶段,技术不断进步。关键技术包括执行系统、控制系统和感知与交互系统,涉及机械结构、运动控制、平衡控制、任务执行控制以及感知与交互能力。主要研究方向包括外部仿人化和内部仿生,前者关注外观设计、动作控制和任务执行能力,后者致力于模拟人类核心机制

一名80后IT人的成长记录,记录自己在工作、学习中的点点滴滴,在成长的喜悦与忧心的故事里,铭记反脆弱的勇气。 1572

海康VisionMaster表面缺陷滤波实战:从参数调优到工业检测避坑指南

本文深入探讨海康VisionMaster表面缺陷滤波技术在工业检测中的应用,从参数调优到ROI绘制与Blob分析的协同策略,提供金属外壳、锂电池铝壳等复杂表面的缺陷检测实战指南。通过多级滤波架构和动态ROI生成法,显著提升检出率至98.7%,误检率低于0.5%,为工业质检提供智能化解决方案。

ujm5678901的博客 330

spring4 整合 hibernate3

最近在升级一个struts2 + spring3 + hibernate3 框架的项目时,遇到了很多问题,再此汇总一下。 首先我升级了struts2,为了安全,struts 由 2.3.35 升级至了2.5.26,网上有很多升级的教程,升级并不困难。 随后在升级spring4的过程中发现,若升级到4,推荐将hibernate也升级到4,但是相应的带来的改动量和不稳定因素也很大,所以我们先升级升级spring4,暂时不升级hibernate。 升级过程: 1.升级spring包版本 <pro

神器海胆的博客 660

神经算子:突破科学计算瓶颈的函数空间映射技术

神经算子(Neural Operators)是深度学习在科学计算领域的重要突破,它从根本上改变了处理连续物理问题的方式。与传统神经网络学习离散数据点映射不同,神经算子学习的是函数空间到函数空间的映射,这种范式转换使其具备离散化收敛性和超分辨率预测能力。在计算流体力学、天气预报等需要求解偏微分方程的场景中,神经算子能够在保持精度的同时将计算速度提升数个数量级。傅里叶神经算子(FNO)通过快速傅里叶变换实现高效计算,特别适合规则网格问题;而图神经算子(GNO)则擅长处理不规则网格和复杂几何形状。这种技术为参数敏

cuililai5127的博客 444

hibernate2 升级为hibernate3的需要注意的事项

hibernate2 升级为hibernate3的需要注意的事项  (chinaewolf的工作日记)       (chinaewolf的工作日记)       目的,主要是那当前的项目练手,熟悉一下hibernate2和hibernate3的差别,给当前项目一点扩展的空间.      1.首先将

soleghost的专栏 1015

C# 与欧姆龙 PLC 实战:通过 Ethernet/IP 协议进行设备控制与监控

本文介绍了如何通过C#和Ethernet/IP协议实现与欧姆龙PLC的通信。Ethernet/IP是基于以太网的工业协议,适用于工业设备间的实时数据交换。文章详细讲解了使用EthernetIPSharp库建立连接、读写数据的步骤,并提供了示例代码。此外,还探讨了实时监控、报警系统等高级功能,为工业自动化控制系统开发提供了实用指导。该方法简化了PLC通信开发,提高了系统可靠性和智能化程度。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 814

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

hibernate2 升级为hibernate3的需要注意的事项(工作日记)

hibernate2 升级为hibernate3的需要注意的事项hibernate2 升级为hibernate3的需要注意的事项(chinaewolf的工作日记)(chinaewolf的工作日记)目的,主要是那当前的项目练手,熟悉一下hibernate2和hibernate3的差别,给当前项目一点扩展的空间. 1.首先将hibernate2.jar替换为hibernate3.jar(hiberna

ewolf的工作专栏 2343

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring Boot 从 2.7.x 升级到 3.3注意事项

从 Spring Boot 2.7.x 升级到 3.3 是一个涉及较多变动的过程,特别是迁移到 Jakarta EE 和 JDK 17。项目在 JDK 17 上正常运行。所有javax.*包改为jakarta.*。更新 Spring 依赖和第三方库以支持 Jakarta EE 9。仔细检查配置文件和日志,处理废弃 API。

2509_94088022的博客 1106

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Hibernate版本升级的细节问题

Hibernate版本升级的细节问题   从3.1升级到3.2或者3.3并不是简单替换hiberante.jar包就可以完成,还有以下要注意的地方。 1.日志系统 2.聚集查询

iteye_17369的博客 374

Spring Boot 2.7.18 升级到 3.4.X踩坑及注意事项

的。

promise524的博客 2503

spring boot3.2.x与spring boot2.7.x对比

相比2.7.x版本在性能、安全性、开发体验、以及现代化特性支持方面都有明显的优势,尤其是在 Jakarta EE、GraalVM 原生映像、以及 JDK 17+ 的支持上。对于正在维护现代企业应用的开发者来说,升级到 Spring Boot 3.2.x 将带来更多的好处和更好的开发体验。依赖的第三方库是否支持 Jakarta EE。使用的 Java 版本需要升级到 JDK 17 或更高。部署时,若有需要原生支持的应用,可以考虑 GraalVM 的原生映像支持。

pumpkin84514的博客 1989

Hibernate select count(*)返回值类型Integer vs Long

COUNT 返回Long对象 MAX MIN 返回类型是跟所使用的字段类型有关 AVG 返回Double SUM 如使用字段是整形,返回Long(以前是返回BigInteger),如果是浮点类型那么就返回Double.由于接触Hibernate较晚, 一直坚定不移的相信select count() 的返回值的类型的是Long. 一次很偶然的机会发现在一段分页函数里发现在使用select cou

流离岁月的博客 7645

hibernate 一些bug的分析

 hibernate 错误分析错误1: 代码:  Peopletable people=(Peopletable)session.load(Peopletable.class,"2");  在hibernate3.1版中报的错误是:  org.hibernate.exception.SQLGrammarException: could not insert: [net.gaoxin.Compute

justlikeyou的专栏 5899

hibernate-多对多关系处理时常遇错误

异常:Associations marked as mappedBy must not define database mappings like @JoinTable or @JoinColumn 错误发生在下面这些代码中 @OneToMany(mappedBy=“parent”,fetch=FetchType.EAGER,cascade=CascadeType.ALL) @JoinColumn(name=“parent_id”) private List child = new ArrayList();

weixin_45030728的博客 386

如何从Hibernate2.1升级到Hibernate3.0?

选自《精通Hibernate:Java对象持久化技术详解》 作者:孙卫琴 来源: www.javathinker.org 如果转载,请标明出处,谢谢 1.1 Hibernate API 变化 1.1.1 包名 1.1.2 org.hibernate.classic包 1.1.3 Hibernate所依赖的第三方软件包 1.1.4 异常模型 1.1.5 Session接口 1.1.6 createS

baggio785的专栏 2668

Hibernate 2 升级为Hibernate 3 的注意事项

    目的,主要是那当前的项目练手,熟悉一下hibernate2和hibernate3的差别,给当前项目一点扩展的空间。1.首先将hibernate2.jar替换为hibernate3.jar(hibernate-3.0.5)  hibernate-tools.jar也替换成新的(从hibernate-tools-3.0.0.alpha4a找出来的)2.将所有程序中的net.sf.hiber

Happy Winner 659
上一篇: Java数据类型,Hibernate数据类型,标准sql数据类型之间的对应表
下一篇: Hibernate的inverse和cascade属性
x98zero
博客等级 码龄22年 0粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值