У себя я использовал Spring JDBC Template с самодельным конструктором CRUD запросов на аннотациях javax.persistence. Велосипед, но все-же лучше чем использовать целый hibernate или jpa. И удобнее в работе.
Недостаток hibernate - то что надо с собой таскать кучу дополнительных либ slf4j, dom4j, aspectj (cglib не в счет - его у меня испольузет spring). А ради простого избавления от запросов так много брать - не очень охота.
При инициализации класса сущности генерировались несколько запросов, которые и использовался все время.
ex:
Код:
class AccountBean implements SimpleBean, Serializable, Comparable<AccountBean> ... {
static {
ACCOUNT_ADD = QueryFactory.createInsertQuery(Account.class);// String
...
ACCOUNT_UPDATE = QueryFactory.createUpdateQuery(Account.class); // String
ACCOUNT_ROW_MAPPER = QueryFactory.createMapper(Account.class); // RowMapper
ACCOUNT_SETTER = QueryFactory.createSetter(Account.class); // PreparedStatementSetterFactory
}
}
и дальше просто использовал (использую JdbcTemplate)
Код:
public boolean update(Account a) {
getJdbcTemplate().update(ACCOUNT_UPDATE, ACCOUNT_SETTER.forObject(account));
...
}