Puedo proponer apache empire-db. http://incubator.apache.org/empire-db/
Apache Empire-db es un componente de persistencia de datos relacionales de código abierto que permite la definición de consultas dinámicas independientes del proveedor de bases de datos, así como la recuperación y actualización de datos segura y sencilla. En comparación con la mayoría de las otras soluciones, como las implementaciones de Hibernate, TopLink, iBATIS o JPA, Empire-db adopta un enfoque considerablemente diferente, con un enfoque especial en la seguridad en tiempo de compilación , reducción de redundancias y mejora de la productividad del desarrollador.
Un ejemplo:
// Define the query
DBCommand cmd = db.createCommand();
DBColumnExpr EMPLOYEE_FULLNAME= db.EMPLOYEES.LASTNAME.append(", ")
.append(db.EMPLOYEES.FIRSTNAME).as("FULL_NAME");
// Select required columns
cmd.select(db.EMPLOYEES.EMPLOYEE_ID, EMPLOYEE_FULLNAME);
cmd.select(db.EMPLOYEES.GENDER, db.EMPLOYEES.PHONE_NUMBER);
cmd.select(db.DEPARTMENTS.NAME.as("DEPARTMENT"));
cmd.select(db.DEPARTMENTS.BUSINESS_UNIT);
// Set Joins
cmd.join(db.EMPLOYEES.DEPARTMENT_ID, db.DEPARTMENTS.DEPARTMENT_ID);
// Set contraints and order
cmd.where(EMP.LASTNAME.length().isGreaterThan(0));
cmd.orderBy(EMP.LASTNAME);;