将Hibernate用于现有数据库

Kev*_*ave 10 java spring hibernate

我们有一个已经运行了很长时间的应用程序.现在我们将它迁移到Spring并可能使用Hibernate或任何其他ORM.

但我们赶上了一个问题.对于现有的数据库使用Hibernate并在Schema周围建模对象是不是不推荐/坏主意?

大多数人提倡不使用Hibernate而不是像iBatis那样使用其他一些ORM.但在我们公司,所有人都是Hibernate的支持者.

有经验吗?

duf*_*ymo 13

我会说在不知道你的要求的情况下选择Hibernate,iBatis或其他任何东西都是不负责任的.

如果你没有可靠的对象模型,我会说Hibernate是一个糟糕的选择.

如果你使用存储过程作为数据库的接口,我会说Hibernate是一个糟糕的选择.

如果您不喜欢Hibernate为您生成的动态SQL,我会说Hibernate是一个糟糕的选择.

得到它?像那些来自Hibernate支持者那样的膝跳反应并不是一个好主意.

可能是iBatis或Spring JDBC模板比Hibernate更好.你应该对这个决定更加了解,并为你的应用程序做出决定,而不是盲目地听一听暴徒.

您也不必全部或全部也不是.可以使用一种技术实现部分解决方案,将其余部分实现在另一种技术中.

我建议您使用基于接口的持久层,以便在不影响客户端的情况下交换实现.

  • 而且我还要补充一点,"固体物体模型"是非常主观的.我认为hibernate/jpa强迫你做一些非常反OOD的事情.[我会让Martin Fowler为我有争议的声明辩护:)](http://martinfowler.com/bliki/AnemicDomainModel.html)(倒数第二段) (4认同)
  • 如果其他应用程序也更新数据库,Hibernate也可能不是一个好的选择 - 在这种情况下,您至少需要确保未启用Hibernate的二级缓存.此外,即使您拥有"固体对象模型",如果它与通常的hibernate架构模式有很大不同,您可能会发现数据访问效率非常低. (3认同)