`

TSS上面关于hibernate的get和load方法区别的讨论

阅读更多

TSS上面Ganesh同志的文章内容是非常有益的,讨论了session的这两个api的区别。get是每次都会从数据库取数据以保证数据的可靠。而load则会返回一个proxy,相当于一个存根,访问的时候从当前session或者hibernate二级缓存中查找,如果找不到则从数据库中Lazy Load一下。从Hibernate的复杂性上来说,这个概念应该算比较容易理解的,而且这种存在也是非常合理的。顺便里面还补充了一下JPA里面也有类似的getReference方法,行为类似load。看完文章你会开始注意这个细节。
可是,这个细节的下面却引起了n多人的讨论,讨论的核心就是Hibernate是不是有太多细节了?
很多人说这样不是OO的,很多人说Hibernate的细节造成它复杂,有人说Hibernate影响了他们的工作效率,等等,反正反对者站出来很多。我想这是可喜的。
说明在Java的Killer-APP组合Spring+Hibernate后面还是有很多持怀疑态度的人的,我们随时都需要提问题的大脑!
所以,我们也思考一下吧:
1、你一定要尽量的不断地熟悉你所使用的技术,可以是Hibernate也可以是JDBC,时刻保持对相关知识的饥渴。这样减少因为你的无知造成的失误。
2、思考别人的批评,或者说ORM不好,或者说这种那种ORM不好,你都要听着,然后思考,然后坚持你思考的结果,直到下一次思考。这个过程最好保持一定的技术偏执,因为没有性格的程序员不是好程序员。
3、放眼各种技术,了解相似技术,这样你不会在城头更换大王旗的时候失业:D。现在我们可以回头看看JDBC Dataset和JPA,向上向下都要看齐嘛。了解了相似技术更有助于你的思考。
4、知道你在讨论什么,知道背景。你需要知道Hibernate主要在Java or JavaEE中使用,当然有Hibernate.net,但是它不怎么火。还有,Hibernate的基础还是SQL和DBMS,你需要仔细了解这两种东西。
5、悟道。

Ganesh的原文:
Hibernate - Difference between session's get() and load()
http://gmarwaha.blogspot.com/2007/01/hibernate-difference-between-sessions.html
TSS上的讨论:
Difference between Hibernate's get() and load()?
http://www.theserverside.com/news/thread.tss?thread_id=43887

我以前翻译的Hibernate的session的javadoc,当时好像从字面上没有什么大的区别,配合这个帖子,要重新想一想:D
http://www.blogjava.net/iamtin/archive/2006/03/06/33910.html

BTW:因为做手术在家休养,所以才有时间发发牢骚:D

分享到:
评论

相关推荐

    tss协议栈tss tss tss

    tss协议栈tss tss tss

    TSS.zip_tss

    标题中的"TSS.zip_tss"指的是一个以TSS命名的ZIP压缩文件,它包含了与TSS(可能是“时间序列分割”或“跟踪状态选择”等技术的缩写)相关的MATLAB源代码。MATLAB是一种广泛用于数值计算、数据分析和算法开发的高级...

    TSS721原理及应用

    在实际应用中,TSS721的总线连接方法及其应用电路设计是实现M-Bus系统稳定运行的关键。电路设计需考虑的因素包括信号完整性、电源稳定性以及与其他组件的兼容性。例如,在构建M-Bus网络时,正确配置TSS721的引脚与...

    TSS煤泥分选机应用效果分析

    TSS煤泥分选机是一种用于选煤厂的设备,主要用于增加煤炭洗选的效率和产量。在这篇文章中,我们重点探讨了TSS煤泥分选机如何应用于同忻选煤厂,通过分选1至0.25毫米粒级的粗煤泥,以提高1/3焦煤的洗出率。 首先,...

    TSS system API 01.pdf

    该文档标题中的“TSS System Level API and TPM Command Transmission Interface Specification”表明了文档的主要内容是关于 TSS 系统级 API 和 TPM 命令传输接口的规格说明。这表明文档将深入介绍如何通过软件接口...

    C语言头文件 TSS C语言头文件 TSS

    C语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC...TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSS

    TSS方法制备感受态细菌

    本文介绍了一种名为TSS(一步法)的制备感受态细胞的方法,该方法具有操作简便、效率高的特点。以下将详细解释这个过程: **一、准备工作** 1. **1×TSS缓冲液的配制**:1×TSS缓冲液是感受态细胞制备的关键成分,...

    TSS721A应用总结

    "TSS721A 应用总结" TSS721A 是一种用于仪表总线的收发器集成芯片,具有调节仪表总线结构中主从机的电平、可通过光耦等隔离器件与总线连接、通过数据收发器由总线供电等特点。本文将对 TSS721A 的应用总结进行详细...

    TSS算法解线性方程代码

    然后,我们可以创建一个类方法或实例方法来执行TSS算法,接受线性方程组的矩阵和向量形式的数据。迭代过程可以封装在一个循环中,每次迭代更新每个变量的值。为了检测收敛,可以设置一个误差阈值,比较连续两次迭代...

    TSS瓦片服务器系统

    TSS(Tile Server System, 瓦片服务器系统)用于存储和访问以瓦片方式组织的数据,特别适合用于存储和访问空间数据(针对窗口访问模式进行了优化),例如DOM、DEM、DLG等,扩展支持流数据的分段方式存储和访问。...

    tpm2-tss-master_tss2_tpm2_types.h_proudnrz_tpm_

    master_tss2_tpm2_types.h_proudnrz_tpm_”指的是一个关于TPM2.0(Trusted Platform Module)的软件开发项目,其中包含了`tss2_tpm2_types.h`这个头文件,这通常在C语言编程环境中用于定义TPM相关的数据类型和结构体...

    包分类算法之一——TSS算法实现代码

    标题中的“包分类算法之一——TSS算法实现代码”指的是在信息技术领域中,一种用于处理数据包分类问题的算法——Trie-based Shortest String (TSS) 算法的编程实现。这种算法通常用于网络流量管理和路由器配置,以便...

    TSS721A在自动抄表系统中的应用

    综上所述,TSS721A收发器芯片在自动抄表系统中的应用,不仅极大地提升了系统的通信效率和可靠性,还简化了系统设计和维护流程,是现代智能计量网络中不可或缺的关键组件。通过深入理解TSS721A的特性和功能,研发团队...

    tss721英文资料

    ### TSS721A:仪表总线(Meter-Bus)收发器 #### 一、产品概述 TSS721A是由德州仪器(TI)设计开发的一款仪表总线(Meter-Bus)终端收发芯片,适用于符合欧洲标准EN1434-3的应用场景。该芯片主要用于实现Meter-Bus...

    TSS_java_

    【标题】"TSS_java_" 指的是一款基于Java编程语言实现的贪食蛇游戏。在计算机科学和编程领域,贪食蛇游戏是一个经典的示例,它展示了基础的图形用户界面(GUI)编程、事件处理和游戏逻辑设计。这款Java版的贪食蛇...

    运动估计快速算法(TSS,DS)matlab

    除了TSS和DS,还有许多其他快速运动估计方法,如块匹配算法(Block Matching Algorithm, BMA)、宏块匹配算法(Macroblock Matching Algorithm, MMA)、哈尔变换辅助的搜索算法、以及基于机器学习的方法等。每种方法...

    m-bus模块tss721

    标题中提到的“m-bus模块tss721”指的是TSS721A这款芯片,它是一种专为Meter-Bus标准(EN1434-3)设计的单芯片收发器。Meter-Bus是一种应用于热量表、燃气表等远程抄表领域的通信协议,它的全称是欧洲标准化委员会...

    openssl tss

    **OpenSSL与Trusted Software Stack (TSS)** OpenSSL是一个强大的安全套接字层密码库,包含了各种主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序供测试或其他目的使用。它是信息...

    仪表总线协议及TSS721应用设计

    ### 仪表总线协议及TSS721应用设计 #### 一、仪表总线概述 仪表总线(Meter-Bus, M-BUS)是一种专为各种消费类型的仪表设计的标准通信协议,它遵循IEC 62056-21标准。M-BUS能够实现远程供电、连续测量以及抄表等...

Global site tag (gtag.js) - Google Analytics