public ShopRoomTarriffCorporateRateView findById(ScrollableSettings settings) {
    ShopRoomTarriffCorporateRateView item =
        em.find(ShopRoomTarriffCorporateRateView.class, settings.getId());

    if (item != null) {
      if (settings.getList().size() > 0) {
        item.customInit(item, settings.getList());
      }

      if (settings.getInitDicts()) {
        item.initDicts();
      }

      if (settings.getInitLists()) {
        item.initList();
      }

      try {
        item.specialInit();
      } catch (Exception e) {
        e.printStackTrace();
      }
    }

    return item;
  }
  @SuppressWarnings("unchecked")
  public List<ShopRoomTarriffCorporateRateView> findAllScrollable(ScrollableSettings settings) {
    List<ShopRoomTarriffCorporateRateView> shoproomtarriffcorporaterateviews =
        DaoUtil.sasQuery(selectClause, settings, ShopRoomTarriffCorporateRateView.class, em)
            .setFirstResult((settings.getPageNumber() - 1) * settings.getPageSize())
            .setMaxResults(settings.getPageSize())
            .getResultList();

    if (settings.getList().size() > 0) {
      for (ShopRoomTarriffCorporateRateView item : shoproomtarriffcorporaterateviews) {
        item.customInit(item, settings.getList());
      }
    }

    if (settings.getInitLists() || settings.getInitDicts()) {
      for (ShopRoomTarriffCorporateRateView item : shoproomtarriffcorporaterateviews) {
        if (settings.getInitDicts()) {
          item.initDicts();
        }
        if (settings.getInitLists()) {
          item.initList();
        }
      }
    }

    return shoproomtarriffcorporaterateviews;
  }
  public ShopRoomTarriffCorporateRateView findById(Object key, Boolean initAll) {
    ShopRoomTarriffCorporateRateView item = em.find(ShopRoomTarriffCorporateRateView.class, key);

    if (item != null) {
      if (initAll) {
        item.init();
      }
    }

    return item;
  }
  public void popularity(ShopRoomTarriffCorporateRateView item) {
    ShopRoomTarriffCorporateRateView shoproomtarriffcorporaterateview = null;
    if (item != null) {
      shoproomtarriffcorporaterateview = findById(item.getId(), false);
    }

    if (shoproomtarriffcorporaterateview != null) {
      if (SObject.class.isAssignableFrom(ShopRoomTarriffCorporateRateView.class)) {
        if (shoproomtarriffcorporaterateview.getPopularity() == null) {
          shoproomtarriffcorporaterateview.setPopularity(-1);
        }
        shoproomtarriffcorporaterateview.setPopularity(
            shoproomtarriffcorporaterateview.getPopularity() + 1);

        try {
          em.createNativeQuery(
                  String.format(updatePopularityClause, tableName),
                  ShopRoomTarriffCorporateRateView.class)
              .setParameter("popularity", shoproomtarriffcorporaterateview.getPopularity())
              .setParameter("id", item.getId())
              .executeUpdate();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
  }