首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >分析一下Java ORM 框架的原理,大家怎么看?

分析一下Java ORM 框架的原理,大家怎么看?

提问于 2020-12-15 12:42:49
回答 0关注 0查看 119

Java 的ORM 框架发展了很多年,一直存在各种各样的问题,相信大家的体会比我还要深,到底这是什么什么呢?我从两个角度来分析一下,大家看看对不对?

1)语义表达的双重性

一个Java Bean 的定义,只能表达一种语义,就是与其它相关的Java 类相互协作实现一项特性,通常用于数据的载体,但不能表达数据库交互时的SQL 的语义,两种内存的语义差异很大(例如:Java Field 在数据库中映射为Column,一个Column 可以进行排序、算术运算、比较运算等),很难通过Annotation 进行描述,除非Java 中增加新的特性,用于描述一个Java Class 的多重语义。既然一个Java Class 无法满足双重语义的描述,只能新增代码进行定义和描述,此时又出现重复代码和变更的一致性,通过Maven 或APT 形式生成,也会存在每次变更后,都需要重新运行任务,才能正常使用,使的开发过程变得更糟。

2)语法一致性

Java 语法与SQL 语法从语义上说基本是一致的,但表现形式不一样,例如:Java 中逻辑表达式:a && b或者a || b,而SQL 中则是a AND b或者a OR c,两种类型表达语义上一致,但语法上不能直接互换。同时,也无法Java 对语义的解析和执行过程进行干预,也就导致了Java 的表达式无法直接转换为SQL 表达式,只能以字符串的形式进行拼接,通过对字符串拼接过程进行抽象和封装,形成一系列API,这也就导致了简单的表达式变成若干Java 方法的嵌套,严重影响了代码的可理解性。

ObjectiveSQL 完美的解决了上述两个问题,通过Java 代码的动态生成和Java 运算符重载等特性,有兴趣的同学可以发起挑战:

https://github.com/braisdom/ObjectiveSql

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档