谈谈Hibernate令人不爽的地方

对于Hibernate,有两点值得反思:

1、HQL创造出来一种语言,目的是以对象方式类SQL去查询数据库,但是为什么不像rails那样,干脆直接定义COC让数据库schema 和对象的schema吻合在一起呢?这样,SQL不就是直接变成了对象查询语言了吗?缺点就是放弃更多更复杂的对象映射模型。但是我的经验表明,项目中要尽量避免复杂的对象映射,这样性能很糟糕,也很容易出错,实际上我仅仅只用n:1就可以表达很多种映射模型了。化繁为简,大巧若拙实为最高境界。

2、现在极其厌恶Hibernate生成的SQL,又臭又长,极难阅读。
5分钟搞定Nano-Banana图片编辑API对接:从Base64编码到生成图片全流程 本文详细介绍了如何快速对接Nano-Banana图片编辑API,基于gemini-2.5-flash-image-preview模型,从环境准备、Base64编码到API调用的全流程。通过实战示例和优化技巧,帮助开发者高效集成AI图片处理能力,提升产品竞争力。 阅读详情

相关推荐

基于EKF的UWB-IMU融合定位系统在农业机器人中的抗干扰优化与Matlab仿真

本文探讨了基于扩展卡尔曼滤波(EKF)的UWB-IMU传感器融合定位系统在农业机器人中的应用。通过Matlab仿真验证,该系统有效解决了农业环境中UWB信号遮挡和IMU累积误差问题,实现了厘米级高精度定位,显著提升了机器人在复杂场景下的抗干扰能力和导航可靠性。

numpy6sculptor的博客 622

Hibernate的十大罪状

最近用到了这个,网上找了有关Hibernate,大家对它使用的意见,看到下面的文章,写的好像蛮详细,看评论的也有不同意见的, 由于自己没有用过难以判断啊,应该是易用性上不怎么,这个没什么偏见! 来源:http://www.blogjava.net/shinewang/archive/2009/01/21/245309.html Hibernate确实功能强悍,但在易用性、性能上存在缺

jklfjsdj79hiofo的专栏 2282

量化策略分享之首板低开

这个量化策略的核心是选择在低位、首次涨停后次日低开的股票,开盘时买入,上午有盈利就卖出,没有就拿到尾盘在卖出;策略优点在于选择的股票在低位,风险较低,并且刚启动首板,有大资金介入,第二天能快速跑路。

qq_29301281的博客 1463

hibernate性能_改善Hibernate应用程序性能的7种方法

hibernate性能 Hibernate是将Java Web应用程序与SQL数据库集成的好工具,但是当应用程序的响应时间开始显着增加时,我们应该怎么做? 当我们怀疑应用程序是否会随着客户群的增长而扩展时,我们该怎么办? 在花大价钱托管或重写代码之前,请考虑分析和改进Web应用程序的这7个方面。 #1调整JVM内存设置 JVM允许我们配置它将分配给运行我们的应用程序的内存量。 如果未...

最佳 Java 编程 282

2025年度工业级3D全景相机技术解析选型参考:国产品牌的技术突围与市场格局

本文分析了工业级3D相机在智慧城市和建筑数字化中的应用。通过对比国内外主流设备的技术参数和应用场景,发现国产品牌如众趣科技在性价比和本地化服务方面具有优势,尤其适合大型空间扫描项目;而国际品牌如Faro、Leica则在精度和可靠性上保持领先。建议根据项目需求(如测距范围、精度要求、预算)进行设备选型,综合考虑扫描效率、数据处理能力和系统兼容性。国产品牌已在国内大型基建项目中展现出竞争力,国际品牌则更适合高精度逆向工程和国际化项目。

gxdtgsy的博客 1072

在 ABAP 世界把 SAML 2.0 玩明白:跨域 SSO 的通信模式、配置路径与落地实践

摘要 SAML 2.0是ABAP平台实现标准化SSO的推荐方案,提供Front-Channel(浏览器传递SAML报文)和Back-Channel(使用工件绑定通过SOAP兑换断言)两种通信方式。前者包括HTTP Redirect和POST绑定,后者通过Artifact绑定提升安全性。配置重点包括:激活ICF服务、使用SAML2事务码建立信任、设置用户标识映射、选择绑定方式(POST易调试、Artifact更安全)及配置安全策略(签名/加密)。典型流程包括SP-initiated和IdP-initiated

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 291

Hibernate性能“暴差”引发的考证

9月17日在优快云社区的Java技术栏中看到了网友lifejoy的一个贴子,题为“hibernate 写入性能暴差,如何配置?”,详细链接请见http://community.youkuaiyun.com/Expert/TopicView3.asp?id=5025307lifejoy网友写了段测试程序,用Hibernate作为持久手段测试了大数据量写入MySql数据库的性能。程序主要使用了一个循环嵌

阶差空间 1万+

支付域——账户系统设计

本文详细介绍了支付域中的账户系统设计,包括账户的定义、核心特征、常见类型以及在支付系统中的作用。账户是支付平台为用户、商户等主体建立的资金记录单元,具有资金归属、余额管理、交易流水、资金安全等核心特征。常见账户类型包括用户账户、商户账户、平台账户、保证金账户等。此外,还探讨了账户与银行账户的区别、账户的结构设计、如何设计账户类型以及账户系统设计等内容。

庄小焱 1189

[转帖]hibernate 性能调优的几种方式

今天在写Hibernate应用程序的时候发现一个程序需要27秒才能加载上来,并且CPU占用情况比较大,MAX=27890kb,MiX=13469kb    起初想用一个同步的JProgressBar东西来实现和用户交互并且数据库加载数据完全用线程池来实现,觉得用多线程来实现应该比较快吧,可惜我错了, 本来Swing就不是线程安全的,果然不出我所料,出来N个大大的Exception并且全...

solid210的专栏 235

C语言从句柄到对象 (一) —— 全局变量的噩梦与“多实例”的救赎

本文探讨了嵌入式开发中句柄(Handle)的概念与应用。通过电机控制案例,分析了传统单例模式在扩展性上的局限,并展示了如何通过句柄实现代码复用:将电机状态封装为结构体,通过指针(句柄)传递实例数据,使同一套逻辑可操作多个实例。文章比较了单例模式与句柄模式的适用场景,建议底层驱动库默认采用句柄模式以提高扩展性。最后指出当前实现仍存在数据暴露风险,预告下期将介绍不透明指针技术实现更安全的封装。全文揭示了句柄作为C语言实现模块化和面向对象设计的关键作用。

一路往蓝-Anbo 的博客 1340

DeepSeek掘金——用DeepSeek模型构建AI 代理

在本综合指南中,我们将探讨如何利用 DeepSeek 的功能构建能够以有意义的方式理解、推理和交互的复杂 AI 代理。人工智能领域正在迅速发展,DeepSeek 的模型代表了智能 AI 代理开发的重大进步。在本综合指南中,我们将探讨如何利用 DeepSeek 的功能构建能够以有意义的方式理解、推理和交互的复杂 AI 代理。

3857

谈谈Hibernate令人爽的地方

由于工作原因,现在将ORM从熟悉的Hibernate转到IBatis 最近组里要把过去的一个项目从ms sql转到oracle下,原本在HB下很轻松的事情 结果现在要一个模块一个模块的改,而且出现的问题多多,改起来超级麻烦 发现IBatis在持久层为我们做的少之又少,带来的是一堆堆 XML 改的时候IB不给输出执行时的SQL语句,出错基本不知道是什么地方的问题,只能一点点摸索(比如...

yh_private 155

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Hibernate 需要注意的地方

1.两种配置文件:   A.hibernate.cfg.xml   和   B.hibernate.properties   A中可含映射文件的配置,而B中hard codes加映射文件。  A。Configuration config=new Configuration().config();   B. Configuration config=new Configuration();   

TonyChi 's Tech Space 781

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

pscad IEEE标准系统搭建说明

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

谈谈你对hibernate的理解

面试官:谈谈你对hibernate的理解 回答:Hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装,使得java程序员可以随心所欲的使用对象编程思维来操纵数据库。 一、Hibernate是对JDBC进一步封装        原来没有使用Hiberante做持久层开发时,存在很多冗余,如:各种JDBC语句,connection的管理,所以出现...

amyflower的博客 3122

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

谈谈Hibernate中一对多

一、准备工作:Member.javapackage com.fhqiu.hibernate.beans.member;import java.util.HashSet;import java.util.Set;public class Member { /**  * 记录会员的具体信息  */ private long id; private String username; pr

fhqiu13647166580的专栏 681

hibernate的context的细节地方

Hibernate的Session是它的灵魂,则Session所掌握的context作用域也是Hibernate发挥最大本领的场所。考虑以下代码, Group与User一个典型的一对多关系: Session session = HibernateSessionFactory.getSession(); Group g = (Group) session.get(Group.class, id)...

Java专栏 254

谈谈hibernate的缓存

一,hibernate是什么技术? 1 hibernate是一个orm 就是对象关系映射框架. 及我们创建的实体类对象与数据库表中的数据是一一对应的关系. 我们可以改变对象信息从而改变数据库中的信息. 这其中其关键作用的是 hibernate的映射文件和hibernate的核心配置文件. 2 hibernate 缓存机制,hibernate有一级缓存...

weixin_30629977的博客 92

谈谈对hibernate的理解

它是ORM思想的一个实现,对JDBC进行了很好的封装,它通过配置使JavaBean对象和数据库表之间进行映射,并提供对增、删、改、查便利的操作方法,同时支持事务处理,它对数据库记录还提供了缓存机制,提高效率,它可以使程序员不用书写SQL,也不用关心数据库SQL之间的差异,它通过方言对数据库进行了很好的适配。 1. Hiberante的主配置文件为hibernate.cfg.xml,其中定义了数据

JACK的专栏 4163

谈谈你对Hibernate的理解

答: 1. 面向对象设计的软件内部运行过程可以理解成就是在不断创建各种新对象、建立对象之间的关系,调用对象的方法来改变各个对象的状态和对象消亡的过程,不管程序运行的过程和操作怎么样,本质上都是要得到一个结果,程序上一个时刻和下一个时刻的运行结果的差异就表现在内存中的对象状态发生了变化。 2.为了在关机和内存空间不够的状况下,保持程序的运行状态,需要将内存中的对象状态保存到持久化设备和从持久化设备中恢复出对象的状态,通常都是保存到关系数据库来保存大量对象信息。从Java程序的运行功能上来讲,保存对象状态的

Java 340

hibernate 3中要注意的地方

 批量更新和删除   在HIBERNATE 3中,批量更新比2有了很大的改善。    以下是通过Hibernate3.0执行批量更新的程序代码: Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); String hqlUpdate = "

jackyrongvip的专栏 1111

谈谈你对hibernate与ibatis的认识!

可以从hibernate以及ibatis各自的特点,优缺点谈起,谈一些自己的认识,在没有特别说服力的情况下,你最好倾向于面试公司所采用的框架 IBATIS: iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目,最初侧重于密码软件的开发,现在是一个基于Java的持久层框架。 iBATIS提供的持久层框架包括

GokerYang 's Blog 763

谈谈对Hibernate的理解

一、Hibernate是JDBC 的轻量级的对象封装,它是一个独立的对象持久层框架,和App Server,和EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。从这个意义上来说,Hibernate和EB不是一个范畴的东西,也不存在非此即彼的关系。  二、

wakeUpJava 1629

谈谈你对 Hibernate 的理解

Hibernate 是一个开源的、基于 Java 的对象关系映射(ORM)框架,由 Hibernate 社区维护。它提供了一种将面向对象的模型与关系型数据库进行映射的方法,使得开发者可以使用 Java 对象来操作数据库,而不需要编写复杂的 SQL 语句。

weixin_45422672的博客 378

关于Hibernate不能保存数据 要注意的地方

一般情况下不能保存数据的原因有: 1.没有开启事务,事务没有提交。 2.代码前后的事务不是同一个,这个是不太容易发现的问题,因为代码不会报错 3.主键生成配置有问题,不能生成主键,当然保存不了数据 二保存方法返回值 save方法返回的是Serializable接口,该结果的值就是你插入到数据库后新记录的主键值。如果你的主键是数值,可以按如下方法 Serializable result ...

小土的博客 1188

谈谈你对Hibernate的理解。

谈谈你对Hibernate的理解。

m0_65712857的博客 136
上一篇: 程序员到30岁就要转行?
下一篇: 谈谈我为什么要学习ruby on rails
robbin
博客等级 码龄26年 12粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值