我熟悉 ORM 作为一个概念,几年前我什至在一个 .NET 项目中使用过 nHibernate;但是,我没有跟上 Java 中 ORM 的话题,也没有机会使用这些工具中的任何一个。
但是,现在我可能有机会开始为我们的一个应用程序使用一些 ORM 工具,以尝试摆脱一系列遗留的 Web 服务。
我很难说出 JPA 规范、您从 Hibernate 库本身获得的内容以及 JDO 必须提供的内容之间的区别。
所以,我知道这个问题有点开放,但我希望得到一些意见:
- 各自的优缺点是什么?
- 你会为一个新项目推荐哪个?
- 在某些情况下,使用一种框架与另一种框架是否有意义?
一些注意事项:
海事组织,我会推荐休眠。
如果您需要使用特定于 Hibernate 的功能,您应该如何做一些评论/问题。有很多方法可以看待这个问题,但我的建议是:
如果您不担心供应商搭售的前景,那么请在 Hibernate 和其他 JPA 和 JDO 实现之间做出选择,包括您的决策中的各种供应商特定扩展。
如果您担心供应商搭售的前景,并且在不求助于供应商特定扩展的情况下无法使用 JPA,那么请不要使用 JPA。(JDO 同上)。
在现实中,你可能需要权衡多少你被厂商担心搭配与多少,你需要这些供应商特定的扩展。
还有其他因素,例如您/您的员工对各自技术的了解程度,产品的许可费用是多少,以及您相信谁的故事关于 JDO 和 JPA 未来会发生什么。