Tôi có thể đề xuất apache Empire-db. http://incubator.apache.org/empire-db/
Apache Empire-db là một thành phần bền vững dữ liệu quan hệ Nguồn mở cho phép định nghĩa truy vấn động độc lập với nhà cung cấp cơ sở dữ liệu cũng như truy xuất và cập nhật dữ liệu an toàn và đơn giản. So với hầu hết các giải pháp khác như triển khai Hibernate, TopLink, iBATIS hoặc JPA, Empire-db có cách tiếp cận khác biệt đáng kể, đặc biệt tập trung vào an toàn thời gian biên dịch , giảm dư thừa và cải thiện năng suất của nhà phát triển.
Một ví dụ:
// 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);;