java orm persistence siena ebean

java - ¿Qué tan maduro es Ebean o Siena?



orm persistence (5)

En la última vez escuché muchas quejas sobre la hibernación. Y de hecho también tengo algunas experiencias dolorosas con hibernación. Así que leí sobre Ebean y Siena .

Ambos tienen enfoques interesantes. Desafortunadamente, las capas de acceso a la base de datos son muy fáciles de escribir, pero si su proyecto crece y tiene que manejar grandes tablas de bases de datos, sabrá si son buenas o no. Así que es realmente difícil evaluar una herramienta así. Hibernate es bien conocido y puede estar seguro de que puede resolver su problema con él. En algún momento necesitas aprender mucho, pero puedes resolverlo.

¿Cómo es con Ebean? ¿Hay aplicaciones del mundo real? ¿Qué bases de datos son compatibles? ¿Es confiable?

Después de buscar un poco más, veo que hay muchos más marcos ORM, así que ¿hay al menos uno confiable?


¿Qué pasa con el uso de EB3, por ejemplo con JBoss (www.jboss.org)?


Actualmente soy desarrollador de Siena pero no desde hace mucho tiempo. Déjame explicarte por qué me convertí en un desarrollador en este proyecto? Fui a Siena porque quería usar Play + GAE y Siena parecía ser un buen comienzo para GAE DB y realmente quería evitar JDO / JPA. Entonces, comencé a apreciar realmente a Siena por su enfoque sencillo, ligero y fácil y sus API tan simples. No pretende ser la capa de abstracción todo en uno como JDO y la API de DB estándar más grande como JPA. Realmente me hizo pensar en las API de DB de Python / Ruby y realmente se ajusta a mi punto de vista: quiero una API de DB simple que me permita resolver la gran mayoría de mis problemas y cuando tenga un problema más complejo, usaré las API de capa inferior, pero ciertamente no una capa de abstracción como hibernación.

La posibilidad de hacer que mi código funcione en GAE DB o JDBC también fue un buen aspecto. Una vez más, Siena no pretende proporcionar exactamente las mismas cosas en ambos mundos porque SQL y NoSQL no son realmente compatibles (pero ORM tampoco es realmente compatible con el modelo SQL :)). Pero, una vez más, es bastante práctico poder confiar en las mismas API en varios DB.

Finalmente, la biblioteca es UN jar y no tienes que recuperar todo el universo para usarlo.

Entonces, me convertí progresivamente en un comentarista de Siena porque quería participar en esta pequeña y agradable aventura. Ahora el equipo de siena está trabajando en una nueva versión que mantiene las mismas API simples, que ofrece nuevas funciones interesantes y que realmente mejora todo el código del backend para que sea aún más fácil extenderlo a la nueva compatibilidad con bases de datos. Siena es una API pragmática basada en experiencias de usuario y por eso me gusta;)

Pascal


Además de Ebean y Siena:

Puede probar JIRM que se centra en CRUDAR objetos inmutables (sí, yo soy el autor).

También hay jOOQ y jOOQ .

Creo que JIRM minimiza el número de DTO porque los objetos de dominio son inmutables y no heredan, implementan y / o no están "mejorados / instrumentados". No es lo mismo con Siena y Ebean.

Además, debido a que los objetos son inmutables, hay más de un enfoque en la actualización por columna en lugar de todo el objeto, lo que tiene más sentido dado las interfaces AJAX de hoy (en comparación con el antiguo modelo POST de bean).


Hemos tenido una gran experiencia con MyBatis , que no es un ORM en sí, sino otra clase de administrador de persistencia, un Asignador de SQL. Usándolo, comienza con las sentencias de SQL y lo dirige sobre cómo asignar filas de resultados a POJOs. Es conceptualmente fácil de entender y sintonizar con poca magia dentro. Es ideal si se siente cómodo con SQL o necesita trabajar con un esquema establecido.


Rob (Ebean Committer) aquí.

Ebean ya tiene más de 4 años. Yo diría que es bastante maduro ahora. Las bases de datos compatibles incluyen Oracle, MySql, Postgres, H2 y SQL Server (y recientemente SQLite). Ebean está haciendo cosas que otros ORM no son como Autofetch (ajuste automático de consultas), por lo que no estoy de acuerdo con la clasificación de madurez. En mi opinión, la comunidad de Ebean es relativamente pequeña, por lo que es probable que tenga que ir al grupo de google de Ebean para participar.

¿Alguna aplicación del mundo real? Sí, pero es mejor que se lo preguntes a la comunidad de Ebean. Ciertamente, hay un buen soporte para el procesamiento por lotes (tamaño de lote, turno de persistencia en cascada para una transacción, etc.) y soporte de consultas grandes que no veo en JPA, etc. (es posible que obtenga algo similar con el soporte Sessionless de Hibernate).

Esperemos que esto pueda responder algunas pequeñas partes de tu pregunta de todos modos.

Saludos, Rob.