学习hibernate的源码有价值吗?

hibernate最近很火,我主要想关注三个方面:
1.如何把对象以及对象之间的关系转化为数据表、主键、外键
2.如何把对象的数据存放到表中
3.如何把表中的数据转化为对象

本来信心很足,但是这个星期看了几个小时的源码,只看了第一方面的问题,感觉代码写的太复杂了,完全没有看jive源码时那种清爽的感觉,也没有见到令人拍案叫绝的处理方式,有一种挫败的感觉,难道高手就是用最朴实的招式发挥最大的威力吗?
忍不住问自己看过以后到底能学到什么东西,因为看完jive后明显感觉自己的能力提供了一个层次。
大家给点意见,hibernate的源码是否值得学习?

嗯,Hibernate的源代码的确如你所说,并没有什么语言编程上的花巧,单纯从代码的技巧运用角度来说,恐怕你会很失望的。我觉得主要看你想通过看源代码希望能够学习些什么东西。比如说,你通过学习Jive,学到了很多设计模式,感到收获颇丰,这就是很值得的。像Jive,Petstore一类的软件编写出来主要就是为了演示设计模式用的,学习的价值比实用价值大得多。

而Hibernate源码并不能够在语言编程技巧上给你带来什么帮助。你如果为了这个目的去看会浪费时间的。我阅读Hibernate源代码往往是为了需要搞清楚一些问题,带着问题去看的,并非毫无目的的通读,因此每每感觉收获非常大,每次都能够给我带来新的收获,让我学习到更多的持久层的设计经验和技巧。总得来说Hibernate源码并不重语言编程技巧,而是在持久层框架的封装上非常非常的高明。你可以看一下我在Hibernate中文论坛的原理和性能版的几个分析源代码的帖子。

to robin: 你提到了持久层的设计经验和技巧,能不能具体的谈一下,多谢

噢,这个话题太大了,如果对这个感兴趣那么去

http://hibernate.fankai.com/

发言好了,那里的yehs220很精通这个,而且有好多人在讨论Hibernate。