Могу предложить apache empire-db. http://incubator.apache.org/empire-db/
Apache Empire-db - это компонент сохранения реляционных данных с открытым исходным кодом, который позволяет определять динамические запросы независимо от поставщика базы данных, а также безопасно и просто извлекать и обновлять данные. По сравнению с большинством других решений, таких как, например, Hibernate, TopLink, iBATIS или реализация JPA, Empire-db использует значительно иной подход, уделяя особое внимание безопасности во время компиляции , уменьшению избыточности и повышению производительности труда разработчиков.
Пример:
// 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);;