今天和面试官聊到 DAO 层时,面试官表示 JPA 很反人类

2016-11-23 16:29:20 +08:00
 Camile

很简单举了例子说:一个数据库如果有 50 个字段,那你写各种条件查询不是要写很多?就是应该用类似 SQL 的方式来查询啊。(感觉是挺 MyBatis 派 or 喜欢写 HQL

但是事实情况似乎并不是如此,我认为 JPA 很好用开发效率很高,最多就是打日志的时候 SQL 有点恶心。

各位是怎么看的?

41712 次点击
所在节点    Java
47 条回复
q397064399
2016-11-30 15:06:49 +08:00
@jsou Struts2 用的多么?
niweicumt
2016-12-16 17:20:27 +08:00
口味选择啦,话说我也比较倾向 MyBatis
hantsy
2016-12-19 12:36:25 +08:00
JPA 几乎是我所有 Java EE 项目中作为 Persistence 的首选。

@danngo2455 JOOQ 对 JDBC 操作来讲不错,在一些场合我也会用到。另外就是 QueryDSL 的对纯 SQL / JPA 等的支持也相当不错。

MyBatis 我永远都不会再选择。 Batis 在进入 Apache 前用过一次(当然 Batis 后来在 Apache 呆不住了),还不如 Spring Jdbc Template 简洁,为什么要用它?

开发时我们要考虑:

1. OOP 首先必须满足面向对象的要求,而不是要面向数据库。
2. 最近几年的项目,都是必须满足 Typesafe 查询,这些在 Hibernate , JPA , JOOQ , Query DSL 都支持得很好。
3. 权衡数据库和 OOP 对象设计。

问过身边一些使用 MyBatis 的人,为什么喜欢它?理由很简单,只会一点 SQL , MyBatis 拿就可以上手。一个共同点,没系统的学习过 Java 和 Java EE ,大多数连 Oracle 官方的 Java 和 Java EE 教程都没读过,更不说是读一本完整的书去系统学习知识,好不用说系统学习 JPA 了,平时写代码也就是只会一些 Copy 的工作。
Camile
2016-12-20 09:28:47 +08:00
@hantsy 2333 后面黑的太厉害了
hantsy
2016-12-20 12:06:23 +08:00
@Camile 不是黑,最近帮朋友公司面试一些不少人,只会 Copy 代码的见得太多了。

以上回复也可以看出一些,如果你用 JPA 还在关心表,,,呵呵,基本上说明在滥用 JPA 了。
zonghua
2016-12-24 01:40:43 +08:00
@EXE 用多表关联查询本来就会被骂
ConradG
2018-01-25 16:39:18 +08:00
JPA 随着系统复杂度上升,可读性下降的很快(注解的通病),性能上也并不多亮眼。系统规模小且简单的话属于不错的选择。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/322705

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX