2010-07-22 30 views
12

Esta mañana estaba a bordo de un S-Bahn (metro alemán) y conocí a un compañero de estudios que trabaja para IBM. Lo que está haciendo allí es la optimización Java EE. Le conté sobre mi pequeño proyecto. Y recomendó no usar Hibernate 'oldschool'. Es por eso que mi pregunta es:¿Hibernate está en desuso?

¿Está Hibernate obsoleto? (En combinación con Java EE/Desarrollo Web)

..o lo que acaba de Prate ..

+4

¿Qué alternativa sugirió? – Alex

+1

¿Dijimos qué está en desuso sobre Hibernate? ¿Utiliza la API propietaria en lugar de JPA?La implementación de Hibernate? –

+0

@Robert Incluso la API propietaria no se desaprobaba de todos modos (y se usa bajo los capós). –

Respuesta

25

No, Hibernate no está en desuso.

Sin embargo, ahora hay JPA (Java Persistence API), que es una API estándar para hacer las cosas que hace Hibernate.

Tenga en cuenta que JPA es solo una especificación de interfaz. Necesitará algo que implemente JPA, e Hibernate es una de las implementaciones de JPA. Además de Hibernate, hay algunos otros como EclipseLink (la implementación de referencia oficial para JPA) y Apache OpenJPA.

+1

En mi opinión, aún me quedaría con Hibernate (usando anotaciones, ya que es mi preferencia sobre XML para persistencia) ya que tiene muchas cosas que JPA no tiene, sin embargo, personalmente esperaré para JPA 2.0. – Deleted

+0

JPA también funciona con anotaciones, no necesariamente con XML. JPA 2.0 ha estado fuera por un tiempo, pero aún no todo lo admite. Elegiría JPA, a menos que haya alguna razón convincente para usar Hibernate simple (por ejemplo, funciones que realmente necesita que no están disponibles a través de JPA). – Jesper

+0

@ Binary255: JPA 2.0 ** está ** allí y la brecha entre JPA 2.0 e Hibernate es delgada ahora. –

1

APP es sólo una manera de hacerlo. Todavía hay Spring y todos los otros marcos donde Hibernate está bien vivo.

3

Hibernate es el proveedor JPA ofrecido por JBoss, que es un servidor Java EE, por lo que dudo que Hibernate como una implementación esté en desuso.

Quizás quiso decir que el uso de Hibernate dentro de un servidor Java EE, sin pasar por la persistencia del proveedor de contenedores, está en desuso y debe confiar en nuestro contenedor para dichos servicios.

2

No, no hay manera de que Hibernate esté obsoleto. Está el JPA que es una especificación de persistencia y Hibernate lo implementa. También Hibernate tiene sus propias características avanzadas que JPA no tiene y es por eso que Hibernate es la fuente principal de nuevas características que se agregan al estándar JPA.

2

Una posible razón por la que puede haberte sugerido contra Hibernate es que para un proyecto pequeño, la sobrecarga de entender Hibernate puede ser bastante significativa.

Hibernate es vasto por decir lo menos. Aunque se puede usar de una manera simple, pero para descubrirlo también, necesitarás comprender mucho más.

pero tenga la seguridad de que Hibernate NO está en desuso, o va a ser en cualquier momento en un futuro lejano. Es solo que si sus necesidades de ORM son modestas, es posible que desee probar otras soluciones como iBATIS

4

Hibernate, además de ser una implementación de JPA, proporciona una gran cantidad de funciones avanzadas que carecen de JPA (sintaxis adicional en la consulta) , Soporte de QBC, etc.). Algunos de ellos son realmente útiles y difíciles de encontrar en el mundo de JPA (todavía). Sin proporcionar tales características, es difícil decir APP puede "reemplazar" Hibernate (por lo tanto, decir que Hibernate siendo desaprobación)

+0

* Muchas funciones extra avanzadas * ya no son tan reales con JPA 2.0. Sí, JPA 2.0 todavía carece de algunas características, como Query By Example, tipos de usuarios personalizados, ... pero JPA 2.0 es una gran mejora y hace que la necesidad de funciones propietarias sea rara. –

1

Sobre la base de lo que ha dicho, suena como que puede haberse referido a Hibernate mapeos XML, en contraste con el uso de anotaciones de Hibernate o JPA. XML es ciertamente basura de la vieja escuela.

Cuestiones relacionadas