@Override
 public <Model extends Base> Model createWithRelations(Model model) {
   try {
     return createWithRelationsThrowException(model);
   } catch (CreateException e) {
     LogUtil.toLog("create error", e);
   }
   return null;
 }
 @Override
 public <Model extends Base> Model readWithRelations(Pk pk, Class<Model> clazz) {
   try {
     return readWithRelationsThrowException(pk, clazz);
   } catch (ReadException e) {
     LogUtil.toLog("read error", e);
   }
   return null;
 }
 @Override
 public <Model extends Base> boolean delete(Pk pk, Class<Model> clazz) {
   try {
     return deleteThrowException(pk, clazz);
   } catch (DeleteException e) {
     LogUtil.toLog("delete error", e);
   }
   return false;
 }
 @Override
 public <Model extends Base> boolean deleteBy(Class<Model> clazz, KeyValue... keyValues) {
   try {
     return deleteByThrowException(clazz, keyValues);
   } catch (DeleteException e) {
     LogUtil.toLog("delete error", e);
   }
   return false;
 }
 @Override
 public <Model extends Base> List<Model> readAll(Class<Model> clazz) {
   try {
     return readAllThrowException(clazz);
   } catch (ReadException e) {
     LogUtil.toLog("read error", e);
   }
   return new ArrayList<Model>();
 }
 @Override
 public <Model extends Base> Model update(Model model) {
   try {
     return updateThrowException(model);
   } catch (UpdateException e) {
     LogUtil.toLog("update error", e);
   }
   return null;
 }
 @Override
 public <M extends Base, C extends Base> boolean deleteRelation(M model, C subModel) {
   try {
     return deleteRelationThrowException(model, subModel);
   } catch (DeleteException e) {
     LogUtil.toLog("delete relations error", e);
   }
   return false;
 }
 @Override
 public <Model extends Base> List<Model> readBy(Class<Model> clazz, KeyValue... keyValues) {
   try {
     return readByThrowException(clazz, keyValues);
   } catch (ReadException e) {
     LogUtil.toLog("read error", e);
   }
   return new ArrayList<Model>();
 }
 @Override
 public <M extends Base, C extends Base> List<C> readRelations(M model, Class<C> subClazz) {
   try {
     return readRelationsThrowException(model, subClazz);
   } catch (ReadException e) {
     LogUtil.toLog("read relations error", e);
   }
   return new ArrayList<C>();
 }
 @Override
 public <M extends Base, C extends Base> C readRelation(M model, Class<C> subClazz) {
   try {
     return readRelationThrowException(model, subClazz);
   } catch (ReadException e) {
     LogUtil.toLog("read relations error", e);
   }
   return null;
 }
 @Override
 public <M extends Base, C extends Base> boolean deleteRelations(
     Pk pk, Class<M> clazz, Collection<Pk> subPks, Class<C> subClazz) {
   try {
     return deleteRelationsThrowException(pk, clazz, subPks, subClazz);
   } catch (DeleteException e) {
     LogUtil.toLog("delete relations error", e);
   }
   return false;
 }
 @Override
 public <M extends Base, C extends Base> boolean createRelations(
     M model, Collection<C> subModels) {
   try {
     return createRelationsThrowException(model, subModels);
   } catch (CreateException e) {
     LogUtil.toLog("create relations error", e);
   }
   return false;
 }
 @Override
 public <M extends Base, C extends Base> boolean createRelation(
     Pk pk, Class<M> clazz, Pk subPk, Class<C> subClazz) {
   try {
     return createRelationThrowException(pk, clazz, subPk, subClazz);
   } catch (CreateException e) {
     LogUtil.toLog("create relations error", e);
   }
   return false;
 }