当前位置:首页 > 技术分析 > 正文内容

在Java中使用哪个ORM框架比较好?- Reddit

ruisui885个月前 (01-21)技术分析22


1、 JPA API, Hibernate的实现,最受欢迎和足够好。


2、JdbcTemplate - 虽然不是真正的 ORM,但您必须自己编写所有查询 + 自己进行映射。我认为最好的选择,因为如果你了解 SQL,你可以 100% 控制它,不像 Hibernate,我看到开发人员犯了可怕的错误和反模式。


3、Spring Boot、JPA 存储库、Hibernate,但只需放入 id。像避免瘟疫一样避免关联和集合。
作为参考,我在 2004 年写了一本关于 Hibernate 的书,并一直在使用它。在调试性能问题和奇怪的异常一百万次之后,发现保持简单(有些人称之为贫血模型)在实践中效果最好。使用 Spring 缓存和/或 Redis 进行缓存/性能。
有趣的是,Hibernate 的创建者最近一直在推特上谈论 Hibernate 无状态会话的乐趣。我真希望我可以把所有的压力和时间都浪费在对抗糟糕的一级和二级缓存抽象上。


4、我经常使用Hibernate,并学会了远离某些东西。二级缓存是一种反模式的做法。如果你需要扩展,可以使用TiDB、Cockroach或Percona,在那里你可以按键分片数据表。
如果你遵循一些规则,我不觉得关系很麻烦。最大的问题是没有多对多的关系和没有急加载。
除非你要求,否则Hibernate Reactive永远不会加载关系。我希望有一个配置选项可以让普通的Hibernate这样做。
我们也有一个SPI集成,我们把它复制粘贴到所有的项目中,如果你试图加载一个有大量项目的集合关系时,它会吐出警告。这使我们避免了大多数的集合加载问题(除了many-many,这在我看来是个错误)。
使用一个在所有实体之间共享的简单的Equals和Hashcode实现也非常重要,它只检查ID。
我认为Hibernate最大的问题是缺乏 "最佳实践 "指南,没有告诉你哪些东西是不好用的。


5、Spring Data JDBC在JDBC的基础上做得很好,可以与数据表记录一起工作,并提供了一个转换器API来处理晦涩的数据类型。每当它不够用时,我就会退回到使用JdbcTemplate来运行查询。
JOOQ 非常有趣,但我喜欢靠近 SQL。对于我迄今为止处理的用例,本机查询总是比基于 ORM 的解决方案更快。不过,这并不是对使用 ORM 的批评。它们在某些情况下占有一席之地。


此外,JOOQ 要求我学习另一种 DSL,而我对 SQL 非常熟悉。使用 Spring Data JDBC 不需要我学习新东西。

在Java中使用哪个ORM框架? - Reddit

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/423.html

标签: c# orm框架
分享给朋友:

“在Java中使用哪个ORM框架比较好?- Reddit” 的相关文章

Lindroid开源应用:在安卓手机 / 平板上安装 Linux发行版

IT之家 6 月 19 日消息,Erfan Abdi 本月发布了 Lindroid 开源应用程序,让用户可以在安卓手机上安装 GNU / Linux 发行版,在完全支持手机硬件的情况下可以运行 Linux 应用程序。Lindroid 开源应用程序就是将 Linux 放入容器中,使用 Halium 等...

基于archlinux的发行版有哪些?

Arch Linux 是一个 Linux 发行版,采用滚动更新的模型,这意味着 Arch Linux 不会定期发布新版本,而是持续接收更新和升级,保持系统与最新软件版本的同步。Arch Linux 以其极简主义、简单性和用户定制为中心的特点而闻名,专注于让用户对其系统配置具有完全控制权。然而,它也以...

react hooks自定义组件居然能这样做

前言  这里写一下如何封装可复用组件。首先技术栈 react hooks + props-type + jsx封装纯函数组件。类组件和typeScript在这不做讨论,大家别白跑一趟。接下来会说一下封装可复用组件的思路,比如一个新手应该怎么去封装,都需要有哪些东西。  然后说一些复杂组件需要的功能,...

掌握版本控制:Git的那些常见用法与技巧

Git作为现代开发中最常用的版本控制系统,它的普及和高效性使得程序员几乎每天都在与它打交道。无论是个人项目,还是团队协作,Git都能帮助我们追踪代码的修改历史,保证代码版本的管理井井有条,并在多人协作时有效地避免冲突。本文将分享一些常见的Git用法与技巧,帮助你更好地掌握Git的强大功能,并提升你在...

身体越柔软越好?刻苦拉伸可能反而不健康 | 果断练

坐下伸直膝盖,双手用力向前伸,再用力……比昨天前进了一厘米,又进步了! 这么努力地拉伸,每个人都有自己的目标,也许是身体健康、线条柔美、放松肌肉、体测满分,也可能为了随时劈个叉,享受一片惊呼。 不过,身体柔软,可以享受到灵活的福利,也可能付出不稳定的代价,并不是越刻苦拉伸越好。太硬或者太软,都不安全...

2024最新版:前端性能优化方案汇总

前端训练营:1v1私教,终身辅导计划,帮你拿到满意的 offer。 已帮助数百位同学拿到了中大厂 offer。欢迎来撩~~~~~~~~Hello,大家好,我是 Sunday。前端性能优化一直是很多同学非常关注的问题,在日常的面试中也是经常会被问到的点。所以今天咱们就花一点时间来了解一下2024最新的...