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

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

ruisui883个月前 (01-21)技术分析13


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” 的相关文章

“韩版谷歌”Naver进军操作系统,发布自研免费Linux发行版

IT之家 12 月 11 日消息,有“韩版 Google”之称的 Naver 公司正式进军操作系统领域,发布了自主研发的 Linux 发行版 Navix,为企业提供了一个稳定、可靠且免费的 Linux 发行版选择。IT之家援引科技媒体 theregister 观点,此举效仿了谷歌的多元化发展战略,也...

微软的Linux发行版终于加入了对XFS根文件系统的支持

当许多Linux发行版在评估新的根文件系统选项或甚至像OpenZFS这样的特性,微软内部Linux发行版到本月才开始支持XFS作为根文件系统选项。随着这个月对微软内部Linux发行版CBL-Mariner的更新,他们现在支持XFS作为根文件系统。到目前为止,这个用于微软内部各种目的的Linux发行版...

jvm疯狂吃内存,到底是谁的锅?

jvm应该是每一个java程序员都需要掌握的内容,但是在没有遇到问题之前,很多都是基于理论的,唯有实战才能增加个人的知识储备。本文是从一个角度来分析是谁在狂吃内存,希望对你有所帮助。本文是易观技术人员注意到一台开发机上各个微服务进程占用内存很高,随即便展开了调查......ps:本文来源于:http...

高效使用 Vim 编辑器的 10 个技巧

在 Reverb,我们使用 MacVim 来标准化开发环境,使配对更容易,并提高效率。当我开始使用 Reverb 时,我以前从未使用过 Vim。我花了几个星期才开始感到舒服,但如果没有这样的提示,可能需要几个月的时间。这里有十个技巧可以帮助你在学习使用 Vim 时提高效率。1. 通过提高按键重复率来...

雅马哈TMAX 560 TECH MAX 外媒深度测评

应雅马哈(Yamaha)的邀请,在葡萄牙埃斯托里尔对全新的Yamaha TMAX 560 Tech Max踏板车进行了测试,在这里TMAX 560 Tech Max售价为11649英镑。雅马哈TMAX长期以来一直站在踏板车的顶端,就声誉和知名度而言,它是当之无愧的大踏板界NO.1。2020 TMAX...

vue3使用vue-router路由(路由懒加载、路由传参)

vue-router 是 vue的一个插件库1. 专门用来实现一个SPA单页面应用2 .基于vue的项目基本都会用到此库SPA的理解1) 单页Web应用(single page web application,SPA)2) 整个应用只有一个完整的页面3) 点击页面中的链接不会刷新页面, 本身也不会向...