是否应去除持久层的JPQL,HQL,EJB QL
javamonkey
2011-07-07
BigBlue 写道 javamonkey 写道 1 我第一次发现有人说O/R Mapping 不慢的 2 都说到osiv啦,你还没有意识到我表达“违背了分层的意思”,你可以再和你同事讨论一下,这个view,指的是view层,为什么提veiw呢,而不提你一直说的逻辑层呢? 我每天都写很多行代码,但俩点我觉得没有必要上代码的 1、你要抬杠,我也没有办法。O/R Mapping 肯定要做一些牺牲,当然包括性能。 上面你说O/R Mapping 一次性查出需要的数据慢,这个慢你是相对什么来说的? 快和慢是分场景的,就像做某个计算时Java要快于C++一样,某些场景下EclipseLink要比纯粹的JDBC快很多。抛开场景说快慢没有多少意义; 其次上面讨论的快慢更多的是在关注生成的SQL语句的效率,抛开这个层面再去讨论就变成口水仗了 2、我当然没有意识到!因为你从来也没有清晰的表达过你的想法。 javamonkey 写道 每次导航,都有可能一次或者多次数据库查询,为什么不能把所需要的数据都一次性查出来呢?
而且导航也违背了分层设计原则。看起来也难受啊 我不清楚导航怎么就违背分层了? 1)当你在事务边界之内,你可以不用关心延时加载,自由导航; 2)当你在事务边界之外,你可以提前查询出你所需要的数据,在预定的范围内导航; 3)当你在事务边界之外,某些场景下,可以用JPA的事务扩展模式,也就是常说的Open Session in view来处理。既然你一直犹抱琵琶半遮面,我只能猜测,你是说在View中要关注Session。但这和分层有什么关系,你说的是什么层?你在这种场景下就真的做不好分层了么? 如果你想讨论,请费点时间写清楚你的观点。否则,省下点时间继续写你每天的代码吧。我没有写代码的压力。 你这是典型的javaeye回复方式。我没有抬杠的意思,你到是自己给我的回复里体现出了想跟我抬杠。你说的每一条,有对有错,我就不一一回复了,免得有抬杠的嫌疑,只要你的项目不觉得性能会出问题,分层也没有问题就行了,毕竟我看到的只是我做过项目的问题。 |