java - framework - ¿Hibernate es peor que NHibernate?
nhibernate vs entity framework 2017 (6)
¿Cómo se compara Hibernate con NHibernate?
He escuchado 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 : no estoy 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 utilizando Fluent NHibernate.
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 galardonado.
NHibernate es un puerto de hibernación que está en java a .Net,
Actualmente, NHibernate es solo un subconjunto de Hibernate, pero se está poniendo al día rápidamente.
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 la configuración basada en Linq, que no creo que hibernate tenga un equivalente.
Ayende Rahien es probablemente la mejor persona para responder esta pregunta, fue uno de los principales miembros del equipo nhibernate. Su blog está aquí
Yo seriamente cuestionaría este comentario.
De acuerdo, Hibernate tiene una gran cantidad de características que requieren una cierta investigación para comprenderlas por completo. Sugeriría que quien hiciera este comentario no haya leído Java Persistence con Hibernate , que es una gran referencia.
También es interesante observar que Grails usa Hibernate bajo las sábanas.
Si eres como yo y no te gusta la forma en que Hibernate hace negocios, puedes intentar usar iBatis. http://ibatis.apache.org/
Siempre tenga dudas sobre las afirmaciones de que "A es peor que B" que no están respaldados por números y / o evidencia.
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.