Hibernate经验简单描述

开发 后端
本文主要是分享我的一些Hibernate经验,在最终的学习和实践中,我发现我还是学到了许多重要的东西,但是我认为我已经非常漂亮的应用了Hibernate/JPA的一些思想。

Hibernate有很多值得学习的地方,这里我们主要介绍我的一些Hibernate经验,包括介绍避免使用工具来自动生成你的模型等方面。

大约一年以前,我为了学习一些Hibernate经验,因此我参加了一个Hibernate项目。从那时起,我一直在使用Hibernate框架下的JPA(Java持久API)实现,使用的思想仍就是一样的。那个项目使用了一个数据库,这个数据库规模有些大,略显落后,并且还被许多的应用程序共用。为了尽快加入到项目中,我开始学习一些Hibernate知识。从书本上的例子开始学习,感觉很简单,学起来也很快,但是发现从零开始开发一个项目,并且控制它又是另外一回事了。试着在一个大型,复杂,被许多应用程序共用的数据库上使用Hibernate就又完全不同了。弄清楚了我可能遭遇到的技术难点,我开始想别的招了,要尽快从另外的方向开始,克服困难。

在最终的学习和实践中,我发现我还是学到了许多重要的东西,虽然我们的项目还没有完全做完,但是我认为我目前已经非常漂亮的应用了Hibernate/JPA的一些思想。现在我需要重新思考反省我所学到的东西,如下便是我学到的一些Hibernate知识:

1.避免使用工具来自动生成你的模型

没错,这些工具的使用可以节约时间(虽然我们发现了Dali有一个很严重的bug,但是我们还是使用它),但是***你不得不重新做很多的事情。其实手动也花费不了你很多的时间,当你亲自做的时候,这可以让你有机会熟悉那些数据。

2.尽量多的使用命名查询语句(NamedQueries)

虽然很容易写查询语句,但是在许多的情况下,使用NamedQueries会更好,这会有助于你完成两件事情:
◆它能更加重用,因为被命名的查询语句通常在代码的重要地方。
◆你的查询语句在开始的时候就是正确的,那么在查询语句中的错误更加容易发现。

要习惯这样做需要花一些时间,但是这么做是值得的。

3.预期管理

对于任何一种框架、技术、甚至观念来说,这是非常重要的,要铭记在心。由于某些原因,人们倾向于专注某一个特征,这些特征实际上或许不存在,或许被夸大。有时它很小,很容易理解(举个例子,理解一些实际的工作,需要在Hibernate中映射),有时我也不知道他们是如何管理实现一些概念(如Hibernate是如何管理计划修正的)。无论如何,找到预期目标是什么,然后管理它们是非常重要的。如果你的团队认为Hibernate会使得数据库管理员没有用处,把他们解雇,那么你将会有一个潜在的问题存在。

4.使用富域模型(rich domain modeling)

我所遇到的一件很悲哀的事情,就是在域对象仅仅是一个简单的数据容器的时候,我要使用Hibernate,而像Hibernate这样的工具让我们以面向对象的方式来使用数据。简单的映射数据只是让我们停留在中途。当我本能的想到使用富域模型(rich domain modeling)的时候,我发现我们可以重用很多的代码,我们的其它层变得不那么混乱了,并且我们的代码更加容易测试。以上是分享我的Hibernate经验。

【编辑推荐】

  1. Hibernate可行性全面概括
  2. Hibernate Sequence基础描述
  3. 浅析Hibernate使用EhCache
  4. Hibernate的一级Cache
  5. Hibernate update浅谈
责任编辑:佚名 来源: 博客园
相关推荐

2009-09-22 12:45:00

Hibernate性能

2009-09-28 15:43:42

Hibernate O

2009-09-23 10:58:32

Hibernate T

2009-09-27 13:00:56

Hibernate S

2009-09-24 13:17:37

Hibernate类库

2009-09-21 13:56:09

Hibernate3.

2009-09-25 10:33:25

Hibernate单元

2009-09-27 17:37:32

Hibernate拦截

2009-09-27 17:05:02

Hibernate p

2009-09-23 17:34:18

Hibernate映射

2009-09-21 16:30:20

Hibernate S

2009-09-22 17:41:07

Hibernate性能

2009-09-29 16:48:42

Hibernate J

2009-09-23 10:23:03

Hibernate检查

2009-09-29 10:57:25

设置Hibernate

2009-09-21 17:46:34

Hibernate持久

2009-09-24 16:19:53

Hibernate应用

2009-09-22 15:04:37

Hibernate M

2009-09-25 14:28:40

Hibernate S

2009-09-23 10:49:08

Hibernate D
点赞
收藏

51CTO技术栈公众号