Si está buscando un ORM liviano, le recomiendo jORM. Tenga en cuenta que mi respuesta es parcial, ya que soy uno de los contribuyentes al proyecto.
Las principales razones por las que decidieron escribir una alternativa ligera son (la necesidad de):
- configuración Hazzlefree
- transacción Claro definiciones
- Gestión de la memoria y la velocidad
- generación de código simple
- Sintonizado a mano SQL
En resumen; desarrollo rápido.
ejemplo de configuración
DataSource dataSource = new DataSource();
dataSource.setDriverClassName("org.postgresql.Driver");
dataSource.setUrl("jdbc:postgresql://localhost:5432/moria");
dataSource.setUsername("gandalf");
dataSource.setPassword("mellon");
Database.configure("moria", dataSource); // now there's a named database
Ejemplo de registro consultas
@Jorm(database="moria", table="goblins", id="id")
public class Goblin extends Record {
public Integer getId() {
return get("id", Integer.class);
}
public void setId(Integer id) {
set("id", id);
}
public Integer getTribeId() {
return get("tribe_id", Integer.class);
}
public void setTribeId(Integer id) {
set("tribe_id", id);
}
public Tribe getTribe() {
return get("tribe_id", Tribe.class);
}
public void setTribe(Tribe tribe) {
set("tribe_id", tribe);
}
public String getName() {
return get("name", String.class);
}
public void setName(String name) {
set("name", name);
}
}
Ejemplo mapeado
Goblin goblin = Record.findById(Goblin.class 42);
List<Goblin> goblins = Record.findAll(Goblin.class);Goblin bolg = Record.find(Goblin.class, new Column("name", "Bolg"));
Ejemplo encargo consulta
Tribe tribe = new Tribe();
tribe.setId(1);
String name = "Azog";
Goblin azog = Record.select(
Goblin.class,
"SELECT * FROM goblins WHERE name = #1# AND tribe_id = #2:id#",
name, // #1#
tribe // #2#
);
Goblin bolg = Record.find(Goblin.class, "SELECT * FROM goblins WHERE name = #1#", "Bolg");
¿Qué hay de malo en hibernación, lo que hizo u límite de alcance para comenzar a buscar otro ORM? – Vanger
No tengo nada comparado con Hibernate, pero me pregunto si existe otro ORM. Me parece que el hibernate tarda mucho tiempo en configurarse con muchas dependencias, las transacciones son inútiles (en mi caso) y me temo que no admitirá una gran cantidad de elementos en mis listas. – Pierre
Para algunas clases para mapear y de solo lectura me gustaría ir con una buena biblioteca de grupo de conexiones (c3p0) y JDBC como "motor de luz". – PeterMmm