public F findOne(UserInfo userInfo, F form) {
    logger.infoCode("I0001"); // I0001=メソッド開始:{0}

    if (form.getGyosekiKey() == null && form.getUpdDate() == null) {
      return null;
    }

    T gyPaperTbl =
        findOne(form.getGyosekiKey(), userInfo.getTargetUserKey(), form.getUpdDateAsTimestamp());
    if (gyPaperTbl == null) {
      return null;
    }
    logger.infoCode("I0002"); // I0002=メソッド終了:{0}
    return getPortfolioForm(gyPaperTbl);
  }
  @Transactional
  public boolean update(UserInfo userInfo, F form) {
    logger.infoCode("I0001");
    try {
      T entity = (T) form.getNewTbl();

      if (form.getPageMode().equals(CommonConst.PAGE_MODE_EDIT)) {
        entity =
            findOne(
                form.getGyosekiKey(), userInfo.getTargetUserKey(), form.getUpdDateAsTimestamp());
        if (entity == null) {
          throw new Exception();
        }
      }

      entity = (T) getPortfolioTbl(form, entity);

      UsUserTbl usUserTbl = new UsUserTbl();
      usUserTbl.setUserKey(userInfo.getTargetUserKey());
      entity.setUsUserTbl(usUserTbl);
      entity.setUpdUserKey(userInfo.getLoginUserKey());
      entity.setUpdDate(DateUtil.getNowTimestamp());

      entity = (T) repository.saveAndFlush(entity);

      if (entity != null) {
        logger.infoCode("I0002");
        return true;
      }

    } catch (Exception e) {
      logger.errorCode("E1007", e); // E1007=登録に失敗しました。{0}
    }
    return false;
  }
 @Transactional
 public boolean delete(UserInfo userInfo, F form) {
   logger.infoCode("I0001");
   try {
     if (form.getPageMode().equals(CommonConst.PAGE_MODE_DELETE)) {
       T entity =
           findOne(
               form.getGyosekiKey(), userInfo.getTargetUserKey(), form.getUpdDateAsTimestamp());
       if (entity == null) {
         String objInfo = "key=" + form.getGyosekiKey() + " updDate=" + form.getUpdDate();
         logger.errorCode("E1009", "entity donot find " + objInfo); // E1009=削除に失敗しました。{0}
         return false;
       }
       repository.delete(entity.getGyosekiKey());
       repository.flush();
       logger.infoCode("I0002");
       return true;
     }
   } catch (Exception e) {
     logger.errorCode("E1009", e); // E1009=削除に失敗しました。{0}
   }
   return false;
 }