2009-06-03 12 views
10

¿Cómo se compara Hibernate a NHibernate?¿Hibernate es peor que NHibernate?

He oído la afirmación de que "Hibernate es mucho peor que NHibernate, incluso hasta el punto de no usarlo (y usar JDBC sobre él)". ¿Alguien puede apoyar o refutar esto?

Actualización - Soy no tratando de decidir entre ellos. Nuestro equipo de DAL decidió usar NHibernate para nuestro lado de .Net, pero no usó Hibernate en el lado de Java porque "no es lo suficientemente bueno". Como yo soy un principiante de ORM, estoy tratando de entender cuáles son las diferencias.

Específicamente, estamos usando Fluent NHibernate.

+15

se hace la pregunta como si usted tiene que elegir entre ellos. Hibernate es para Java, NHibernate es para .NET –

+0

Tengo problemas filosóficos con ORM pero, como muchos otros, he usado Hibernate con éxito en el pasado. – CurtainDog

+0

Ver actualización, NO estoy tratando de decidir entre ellos. – ripper234

Respuesta

39

Esta afirmación es ridícula. Hibernate se diseñó originalmente para Java y luego se transfirió a .NET. Hibernate es la herramienta ORM más destacada en Java hoy en día y es muy aclamada por los desarrolladores. También es un marco ganador award.

10

NHibernate es un puerto de hibernación que es java a .Net,

Actualmente NHibernate es solamente un subconjunto de hibernación pero rápidamente se está poniendo al día.

Creo que los dos son comparables en su mayor parte, solo son las características más avanzadas las que son diferentes.

NHibernate tiene cosas como configuración basada en Linq que no creo que hibernate tenga un equivalente.

Ayende Rahien es probablemente la mejor persona para responder a esta pregunta, fue uno de los miembros principales del equipo nhibernate. Su blog es here

+0

cuidado con la biblioteca linq2nhibernate, es un poco escaso y actualmente se está reescribiendo. es bueno para cosas simples, aunque –

4

Preguntaría seriamente este comentario.

De acuerdo, Hibernate tiene una gran cantidad de características que requieren una investigación para comprenderlas por completo. Sugeriría que quien hiciera este comentario no haya leído Java Persistence with Hibernate, que es una gran referencia.

También es interesante observar que Grails utiliza Hibernate bajo las sábanas.

0

Siempre tenga dudas sobre las afirmaciones de que "A es peor que B" que no están respaldados por números y/o evidencia.

4

El poder y la elegancia de LINQ deben contar con alguna capacidad adicional para crear consultas complejas a partir de expresiones más simples. Esta porción de la interfaz de nhibernate por sí sola lo convierte en un salto evolutivo más allá de la hibernación.

referirse a: What is the Java equivalent for LINQ?

Cuestiones relacionadas