@Override public ID update(T domain) { final TransactionStatus transactionStatus = getTransaction(); preDao(); try { LOG.debug("Update {}", domain); final ID id = dao.getSimpleKey(domain); if (null == domain || null == id) { throw new IllegalArgumentException("ID cannot be null updating " + dao.getTableName()); } dao.update(domain); commitTransaction(transactionStatus); return id; } finally { postDao(); rollbackTransaction(transactionStatus); } }
@Override public T get(String parentKeyString, ID id) { if (null == id || "".equals(id)) { return null; } preDao(); try { // TODO: parentKeyString must be decoded by parent dao! Object parentKey = dao.getPrimaryKey(parentKeyString); T domain = dao.findByPrimaryKey(parentKey, id); LOG.debug( "GET {}/{}/{} returns {}", new Object[] {dao.getTableName(), parentKey, id, domain}); return domain; } catch (RuntimeException toLog) { LOG.warn("in GET", toLog); throw toLog; } finally { postDao(); } }
@Override public String getTableName() { return dao.getTableName(); }