6)密切注意触发器
密切注意数据库触发器有如下两个原因:
a) 在后台触发器很隐蔽的执行了一些功能,让你很是疑惑,不知道发生了什么。
b) 当你在Hibernate端需要复制一些东西的时候,触发器会做一些手脚。之前我们好几次没有认识到这个教训,导致我们丢失了很多数据,这些都是由触发器引起的,这几乎让我们很是郁闷。
7)避免使用工具来自动生成你的模型
没错,这些工具的使用可以节约时间(虽然我们发现了Dali有一个很严重的bug,但是我们还是使用它),但是最后你不得不重新做很多的事情。其实手动也花费不了你很多的时间,当你亲自做的时候,这可以让你有机会熟悉那些数据。
8) 尽量多的使用命名查询语句(NamedQueries)
虽然很容易写查询语句,但是在许多的情况下,使用NamedQueries会更好,这会有助于你完成两件事情:
a) 它能更加重用,因为被命名的查询语句通常在代码的重要地方。
b) 你的查询语句在开始的时候就是正确的,那么在查询语句中的错误更加容易发现。
要习惯这样做需要花一些时间,但是这么做是值得的。
9)预期管理
对于任何一种框架、技术、甚至观念来说,这是非常重要的,要铭记在心。由于某些原因,人们倾向于专注某一个特征,这些特征实际上或许不存在,或许被夸大。有时它很小,很容易理解(举个例子,理解一些实际的工作,需要在Hibernate中映射),有时我也不知道他们是如何管理实现一些概念(如Hibernate是如何管理计划修正的)。无论如何,找到预期目标是什么,然后管理它们是非常重要的。如果你的团队认为Hibernate会使得数据库管理员没有用处,把他们解雇,那么你将会有一个潜在的问题存在。
10)使用富域模型(rich domain modeling)
我所遇到的一件很悲哀的事情,就是在域对象仅仅是一个简单的数据容器的时候,我要使用Hibernate,而像Hibernate这样的工具让我们以面向对象的方式来使用数据。简单的映射数据只是让我们停留在中途。当我本能的想到使用富域模型(rich domain modeling)的时候,我发现我们可以重用很多的代码,我们的其它层变得不那么混乱了,并且我们的代码更加容易测试。