项目闹鬼之hibernate2.1.6

NHibernate的2.1.x的源代码 最近在研究spring和hibernate的优化,在经过一周的读代码与修改后,发现spring和hibernate是可以优化的,而且有很大优化空间。这个是hibernate源码。只是说了些废话。 立即下载

同步自:http://www.blogjava.net/AndersLin/archive/2006/07/28/60510.html

 

项目用的持久化层是hibernate 2.1.6.
前不久出现一个错误,简单描述一下:

现有3个对象:Party,TParty和Individual,其中Individual是Party的子类,Party和TParty各自独立,两个对象都映射到表T_Party。

当独立执行Individual person = (Individual)session.load(Individual.class, id)时,系统正确,.
而在同一thread下(OpenSessionInView),先session.find("from TParty"),再Individual person = (Individual)session.load(Individual.class, id)系统报错ClassCastException,经查此时系统返回的是TParty对象。

初步断定是hibernate问题,参看hiberante 2.1.7没有觉的有什么问题(因为自己电脑本地有这个版本,事实证明这是个错误)。折腾了一天,没有发现问题所在,最后只好下载了hibernate2.1.6,立刻发现问题所在。
hibernate在load对象时,会通过getEntity(key)查看是否加载过,而Key对象几个主要方法如下:

private  Key(Serializable id, Serializable identifierSpace, Class clazz,  boolean  batchLoadable)  {
        
if  (id == null )  throw   new  AssertionFailure( " null identifier " );
        
this .identifier = id;
        
this .identifierSpace  =  identifierSpace;
        
this .clazz  =  clazz;
        
this .isBatchLoadable  =  batchLoadable;
    }

    
    
/**
     * Construct a unique identifier for an entity class instance
     
*/

    
public  Key(Serializable id, ClassPersister p)  {
        
this ( id, p.getIdentifierSpace(), p.getMappedClass(), p.isBatchLoadable() );
    }


public   boolean  equals(Object other)  {
        Key otherKey 
=  (Key) other;
        
return  otherKey.identifierSpace.equals( this .identifierSpace)  &&  otherKey.identifier.equals( this .identifier);
    }

    
    
public   int  hashCode()  { 
        
int  result  =   17 ;
        result 
=   37   *  result  +  identifierSpace.hashCode();
        result 
=   37   *  result  +  identifier.hashCode();

这个Key在hiberante几个版本都一样
但在ClassPersister在2.1.6和2.1.7却有不同:
hibernate 2.1.7中在AbstractEntityPersister中

public  Serializable getIdentifierSpace()  {
    
return  rootClassName;
}

但在hibernate 2.1.6 中的EntityPersister

  public  Serializable getIdentifierSpace()  {
  
return  qualifiedTableName;
 }

问题就出在这里。赶紧把hibernate从2.1.6升级到2.1.8。

hibernate2.1相关jar包 hibernate2.1相关jar包,把里面的所有包导进去,hibernate2.1就可以使用了!!!! 立即下载

相关推荐

从M350 RTK到E-Port:解锁大疆无人机多负载协同与PSDK V3开发新范式

本文深入解析了大疆M350 RTK无人机搭载的E-Port智能接口与全新的PSDK V3开发套件,如何共同实现多负载协同作业的范式转变。E-Port集成了供电与高速数据总线,而PSDK V3通过统一的设备模型与服务机制,大幅降低了第三方负载的开发门槛与集成复杂度,使构建如智能巡检等复杂空中作业系统变得更加高效和标准化。

3c4x5z6v7b的博客 166

HiberNate 最简单的配置方法,java的几大框架原理,

基于这个开发环境:wsad5.1 Spring-Version: 1.1.4 Struts Framework 1.1 Hibernate-Version: 2.1.7 Blog.Ad0.Cn来配置: 文件如下 java.sun.com/dtd/web- app_2_3.dtd"> MVC_BPEL_MODELWeb contextConfigLocation /WEB

xiuluomenshen1986的专栏 710

3DE重客户端安装

3DE重客户端安装

m0_48170265的博客 9429

7、spring集成hibernate

spring+hibernate

好好学习,天天向上! 403

基于Python实现的捕鱼达人小游戏源代码+使用说明

摘要: 本文介绍了一款自制的捕鱼达人小游戏,使用Python3和Pygame模块开发。游戏包含完整的资源文件(图片、音效、字体)和源码结构(11个功能模块),实现了大炮移动射击、特殊子弹、炸弹、难度递增等核心玩法。安装需配置Python环境和Pygame模块,运行main.py即可启动游戏。游戏支持键盘控制(方向键移动、空格射击、1键放炸弹),默认时长600秒,包含开始菜单、游戏界面和结束界面。所有代码均有详细注释,项目已开源并提供下载链接。(150字)

2301_76484015的博客 667

【WiFi软件开发】IOCTL和Netlink----用户空间和内核空间交互的两种方式

linux开发中通常会涉及用户空间和内核模块的交互。本文介绍了两种典型的用户空间和内核模块通信方式:ioctl和netlink

liuwe1ye的博客 2349

在Tomcat 5.5.4中通过Hibernate 2.1.8访问MySQL数据库

mysql> select * from users; +----+-------+------------+----------------+| id | name  | password   | createTime     |+----+-------+------------+----------------+|  1 | bitan | bbbbbbbbb  | 200502020355

Jim Yang 1137

Arm A-profile架构RAS系统设计:可靠性、可用性与可服务性解析

在计算机体系结构中,可靠性(Reliability)、可用性(Availability)和可服务性(Serviceability)是构建高可信系统的核心要素。RAS系统通过硬件错误检测、隔离和恢复机制,确保系统持续稳定运行。其技术原理包括ECC内存纠错、冗余执行单元和错误传播阻断等关键技术,可显著降低数据中心等关键业务场景的故障率。现代芯片设计中,Arm A-profile架构提供标准化的RAS框架,涵盖从内存子系统到计算单元的全方位错误管理。通过分层防御策略和统一错误记录格式,实现硬件错误可追溯、可修复。

weixin_30920853的博客 358

ORM透明持久化方案面对的共同困境

原文出处及评论:http://www.blogjava.net/calvin/archive/2006/01/05/26791.html 作者:江南白衣 上次FB的吹水摘录: 除JDBC外的数据访问技术包括EJB,Hibernate,JDO,iBatis等,但凡是ORM的总要面对相同的困境,如果透明持久化的,苦恼就更多 --Java数据访问技术依然在缓慢跨越鸿沟,.Net社区的同学用不着眼热心...

网站开发初中级代码参考-转载 110

Qwen2.5-7B大模型实战:从零部署到高效推理全流程解析

本文详细解析了Qwen2.5-7B大模型从零部署到高效推理的全流程。内容涵盖环境准备、模型下载、使用Transformers进行核心对话推理,并深入介绍了vLLM与TGI生产级服务部署、GPTQ/AWQ量化技术以降低显存消耗,以及llama.cpp、Ollama等本地推理方案。旨在帮助开发者快速掌握部署技巧,实现大模型在消费级硬件上的高效运行。

weixin_29061425的博客 490

【OpenClaw从入门到精通】第04篇:Web/TUI/钉钉全打通!OpenClaw多端交互实测指南(2026避坑版)

本文详解OpenClaw三大交互方式(Web控制台、TUI终端、钉钉集成),解决新手多端操作难题。Web控制台适合可视化深度配置,TUI终端满足服务器高效运维,钉钉集成实现移动办公协同。提供2026实测配置步骤、代码示例及避坑指南,涵盖设备配对、终端命令优化、聊天机器人回调验证等核心场景,助用户快速掌握"随时召唤AI助理"的全链路方案。 关键词 OpenClaw、多端交互、Web控制台、TUI终端、钉钉集成、AI助理、实操指南 核心亮点 全链路打通:覆盖Web/TIM/IM三端配置

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 3544

jBPM(九):jBPM的webSale在Tomcat下怎么连上的数据库?

          在jBPM(八): 也说jBPM + Tomcat + MySQL 里, 介绍了如何配置jBPM自带例子webSale运行在Tomcat中, 也陈述了这样一个实事: 到目前为止,还没发现问题,尽管跟网上介绍的繁琐配置不一样. jBPM(八)中的配置一个很大的不同点就是没有在Tomcat中配置JNDI,那么我们不意要问:webSale是怎么连的数据库呢?     翻遍了we...

rmn190 142

零基础入门simulink仿真--通信领域的调制解调技术:基于Simulink的PM信号调制与解调仿真建模示例

PM的基本原理是将基带信号(如语音或音乐信号)加载到高频载波信号的相位上。通过改变载波的瞬时相位,可以实现信息的传输。PM的优点包括抗噪声能力强、频谱利用率较高等,但其解调过程相对复杂。通过Simulink,我们可以通过模块化的建模方式实现PM信号的调制和解调过程,并观察信号在信道中的传输效果。通过本指南,我们介绍了如何基于Simulink搭建一个完整的PM信号调制与解调仿真模型,并进行仿真和性能评估。背景介绍:理解PM信号调制与解调的基本原理及其应用。所需工具和环境:列出进行PM仿真所需的工具和环境。

amy_mhd的博客 605

oracle的clob赋值_(转)如何对CLOB字段进行全文检索和oracle中大文字量的处理

1、如何对CLOB字段进行全文检索?习惯了使用%来进行模糊查询,可发现在CLOB上行不通了,原来CLOB的查询是有专门的LOB操作工具的。说明: CLOB字段可以select,但select时不可以使用whereSQL> create table a(a clob);SQL> insert into a values('1234');SQL> insert into a valu...

weixin_31154627的博客 835

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

struts2.1.8+hibernate2.5.6+spring3.0(ssh2三大框架)常见异常原因和解决方案(下)

首先声明:该文从我自己的网易博客“敏敏的博客”(现已不再更新)整理过来,仍属原创。 上篇请看“struts2.1.8+hibernate2.5.6+spring3.0(ssh2三大框架)常见异常原因和解决方案(上) ”。 --------------------------------------------------------------------------------

程序媛想事儿 2384

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

转贴hibernate2.1与hibernate3.0的区别

尽管Hibernate 3.0 与Hibernate2.1的源代码是不兼容的,但是当Hibernate开发小组在设计Hibernate3.0时,为简化升级Hibernate版本 作了周到的考虑。对于现有的基于Hibernate2.1的Java项目,可以很方便的把它升级到Hibernate3.0。 本文描述了Hibernate3.0版本的新变化,Hibernate3.0版本的变化包括三个方面: (...

benlsoft的专栏 252

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

最新eclipse整合Struts2.3.29+Hibernate5.2.1+Spring4.3.1(三)Struts+Hibernate+spring篇

继续,我又新建一个项目sshTest,把shDemo的代码都移进去(shDemo拿去干别的事了) 1.引入spring所需jar包 这里不仅需要spring的jar包 还需要hibernate中两个数据源包 2.修改web.xml文件 在web.xml文件中添加spring的监听器和配置文件位置以及hibernate的session过滤器 sshT

唐震宇的博客 1977
上一篇: 项目闹鬼之hibernate2.1.6
下一篇: 高举Domain Specification,应用函数式编程
林仪明
博客等级 码龄25年 313粉丝 61原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值