今天早上我乘坐S-Bahn(德国地铁),遇到了一位为IBM工作的同学。他在那里做的是Java EE优化。我告诉他我的小项目。他建议不要使用'oldschool'Hibernate。这就是为什么我的问题是:
是否弃用了Hibernate? (与Java EE / Web开发结合使用)
..或者他只是p .. ..
答案 0 :(得分:25)
不,Hibernate不被弃用。
但是,现在有JPA(Java Persistence API),它是用于执行Hibernate所做事情的标准API。
请注意,JPA只是一个接口规范。你需要一些实现JPA的东西,而Hibernate是JPA的一个实现。除了Hibernate之外,还有其他一些如EclipseLink(JPA的官方参考实现)和Apache OpenJPA。
答案 1 :(得分:4)
Hibernate除了是JPA的实现之外,还提供了许多JPA缺乏的额外高级功能(查询中的额外语法,QBC支持等)。其中一些非常有用,很难在JPA世界中找到解决方法(尚未)。没有提供这样的功能,很难说JPA可以“替换”Hibernate(因此,说Hibernate正在弃用)
答案 2 :(得分:3)
Hibernate是JBoss提供的JPA提供程序,它是一个Java EE服务器,所以我怀疑Hibernate 作为一个实现已被弃用。
也许他的意思是,在Java EE服务器中使用Hibernate,绕过容器提供者持久性,已经弃用了,你应该依靠我们的容器来提供这样的服务。
答案 3 :(得分:2)
不,Hibernate
无法弃用。 JPA
是持久性规范,Hibernate
实现它。此外,Hibernate
还有JPA
没有的高级功能,这就是为什么Hibernate
是添加到JPA
标准的新功能的主要来源。
答案 4 :(得分:2)
他可能建议你反对Hibernate的一个可能原因是,对于一个小项目,理解Hibernate的开销可能非常大。
至少可以说Hibernate 很大。虽然它可以以一种简单的方式使用,但为了找到它,你还需要理解更多。
但请放心,Hibernate不会被弃用,或者在未来的任何时候都不会被弃用。只是如果您的ORM需求适中,您可能想尝试其他解决方案,如iBATIS
答案 5 :(得分:1)
JPA只是一种方法。还有Spring和所有其他框架,Hibernate还活着。
答案 6 :(得分:1)
基于你所说的,听起来像他可能指的是Hibernate xml映射,与使用Hibernate注释或JPA相反。 XML肯定是老派垃圾。