Class SqlTimeMetricsDaoContext

java.lang.Object
nablarch.integration.micrometer.instrument.dao.SqlTimeMetricsDaoContext
All Implemented Interfaces:
DaoContext

public class SqlTimeMetricsDaoContext extends Object implements DaoContext
SQLの処理実行時間をメトリクスとして計測するDaoContextのラッパークラス。

メトリクスは、sql.process.timeという名前になる。

また、メトリクスには以下のタグが設定される。

  • sql.id: SQLID(無い場合は"None")
  • entity: エンティティクラスの名前(Class.getName())。
  • method: 実行されたDaoContextのメソッドの単純名

引数で渡されたエンティティまたはエンティティのリストが、nullまたは空のリストの場合は、 時間は計測されない(委譲先のメソッドの処理は実行される)。

  • Constructor Details

    • SqlTimeMetricsDaoContext

      public SqlTimeMetricsDaoContext(DaoContext delegate, io.micrometer.core.instrument.MeterRegistry meterRegistry)
      委譲先の DaoContextMeterRegistryを指定するコンストラクタ。
      Parameters:
      delegate - 委譲先のDaoContext
      meterRegistry - MeterRegistry
  • Method Details

    • findById

      public <T> T findById(Class<T> entityClass, Object... id)
      Description copied from interface: DaoContext
      プライマリーキーによる検索を行う。
      Specified by:
      findById in interface DaoContext
      Type Parameters:
      T - エンティティクラスの型
      Parameters:
      entityClass - エンティティクラス
      id - プライマリーキー (複合キーの場合は定義順)
      Returns:
      エンティティオブジェクト
    • findByIdOrNull

      public <T> T findByIdOrNull(Class<T> entityClass, Object... id)
      Description copied from interface: DaoContext
      プライマリーキーによる検索を行う。
      Specified by:
      findByIdOrNull in interface DaoContext
      Type Parameters:
      T - エンティティクラスの型
      Parameters:
      entityClass - エンティティクラス
      id - プライマリーキー (複合キーの場合は定義順)
      Returns:
      エンティティオブジェクト。0件の場合はnull。
    • findAll

      public <T> EntityList<T> findAll(Class<T> entityClass)
      Description copied from interface: DaoContext
      全件の検索を行う。
      Specified by:
      findAll in interface DaoContext
      Type Parameters:
      T - エンティティクラスの型
      Parameters:
      entityClass - エンティティクラス
      Returns:
      検索結果リスト。0件の場合は空リスト。
    • findAllBySqlFile

      public <T> EntityList<T> findAllBySqlFile(Class<T> entityClass, String sqlId, Object params)
      Description copied from interface: DaoContext
      SQL_IDをもとにバインド変数を展開して検索処理を行う。
      Specified by:
      findAllBySqlFile in interface DaoContext
      Type Parameters:
      T - 検索結果をマッピングするBeanクラスの型
      Parameters:
      entityClass - 検索結果をマッピングするBeanクラス
      sqlId - SQL_ID
      params - バインド変数
      Returns:
      検索結果リスト。0件の場合は空リスト。
    • findAllBySqlFile

      public <T> EntityList<T> findAllBySqlFile(Class<T> entityClass, String sqlId)
      Description copied from interface: DaoContext
      SQL_IDをもとに検索を行う。
      Specified by:
      findAllBySqlFile in interface DaoContext
      Type Parameters:
      T - 検索結果をマッピングするBeanクラスの型
      Parameters:
      entityClass - 検索結果をマッピングするBeanクラス
      sqlId - SQL_ID
      Returns:
      検索結果リスト。0件の場合は空リスト。
    • findBySqlFile

      public <T> T findBySqlFile(Class<T> entityClass, String sqlId, Object params)
      Description copied from interface: DaoContext
      SQL_IDをもとに1件検索を行う。
      Specified by:
      findBySqlFile in interface DaoContext
      Type Parameters:
      T - 検索結果をマッピングするBeanクラスの型
      Parameters:
      entityClass - 検索結果をマッピングするBeanクラス
      sqlId - SQL_ID
      params - バインド変数
      Returns:
      エンティティオブジェクト
    • findBySqlFileOrNull

      public <T> T findBySqlFileOrNull(Class<T> entityClass, String sqlId, Object params)
      Description copied from interface: DaoContext
      SQL_IDをもとに1件検索を行う。
      Specified by:
      findBySqlFileOrNull in interface DaoContext
      Type Parameters:
      T - 検索結果をマッピングするBeanクラスの型
      Parameters:
      entityClass - 検索結果をマッピングするBeanクラス
      sqlId - SQL_ID
      params - バインド変数
      Returns:
      エンティティオブジェクト。0件の場合はnull。
    • countBySqlFile

      public <T> long countBySqlFile(Class<T> entityClass, String sqlId, Object params)
      Description copied from interface: DaoContext
      SQL_IDをもとに結果件数を取得する。
      Specified by:
      countBySqlFile in interface DaoContext
      Type Parameters:
      T - エンティティクラスの型
      Parameters:
      entityClass - エンティティクラス
      sqlId - SQL_ID
      params - バインド変数
      Returns:
      件数
    • update

      public <T> int update(T entity) throws jakarta.persistence.OptimisticLockException
      Description copied from interface: DaoContext
      エンティティオブジェクトを元に更新処理を行う。

      エンティティの主キーが更新条件となる。

      Specified by:
      update in interface DaoContext
      Type Parameters:
      T - エンティティクラスの型
      Parameters:
      entity - エンティティオブジェクト
      Returns:
      更新件数
      Throws:
      jakarta.persistence.OptimisticLockException - バージョン不一致で更新対象が存在しない場合
    • batchUpdate

      public <T> void batchUpdate(List<T> entities)
      Description copied from interface: DaoContext
      エンティティオブジェクトの情報を元に一括更新を行う。

      DaoContext.update(Object)とは異なり、一括更新処理ではバージョン不一致チェックは行わない。 例えば、バージョン番号が変更になっていた場合はそのレコードのみ更新されずに処理は正常に終了する。 バージョン番号のチェックを必要とする場合には、DaoContext.update(Object)を使用すること。

      Specified by:
      batchUpdate in interface DaoContext
      Type Parameters:
      T - エンティティクラスの型
      Parameters:
      entities - 更新対象のエンティティリスト
    • insert

      public <T> void insert(T entity)
      Description copied from interface: DaoContext
      エンティティオブジェクトを元に登録処理を行う。
      Specified by:
      insert in interface DaoContext
      Type Parameters:
      T - エンティティクラスの型
      Parameters:
      entity - エンティティオブジェクト
    • batchInsert

      public <T> void batchInsert(List<T> entities)
      Description copied from interface: DaoContext
      エンティティオブジェクトの情報を一括で登録する。
      Specified by:
      batchInsert in interface DaoContext
      Type Parameters:
      T - エンティティクラスの型
      Parameters:
      entities - エンティティリスト
    • delete

      public <T> int delete(T entity)
      Description copied from interface: DaoContext
      エンティティオブジェクトを元に削除処理を行う。

      エンティティの主キーが削除条件となる。

      Specified by:
      delete in interface DaoContext
      Type Parameters:
      T - エンティティクラスの型
      Parameters:
      entity - エンティティオブジェクト
      Returns:
      削除件数
    • batchDelete

      public <T> void batchDelete(List<T> entities)
      Description copied from interface: DaoContext
      エンティティオブジェクトを元に一括削除処理を行う。

      エンティティの主キーが削除条件となる。

      Specified by:
      batchDelete in interface DaoContext
      Type Parameters:
      T - エンティティクラスの型
      Parameters:
      entities - エンティティリスト
    • page

      public DaoContext page(long page)
      Description copied from interface: DaoContext
      ページングの何ページ目を検索するかを指定する。
      Specified by:
      page in interface DaoContext
      Parameters:
      page - ページ番号(1-origin)
      Returns:
      DaoContextがそのまま返る。
    • per

      public DaoContext per(long per)
      Description copied from interface: DaoContext
      ページングの1ページにつき何件表示するかを指定する。
      Specified by:
      per in interface DaoContext
      Parameters:
      per - ページ内表示件数
      Returns:
      DaoContextがそのまま返る。
    • defer

      public DaoContext defer()
      Description copied from interface: DaoContext
      検索結果の取得を遅延させる。
      Specified by:
      defer in interface DaoContext
      Returns:
      DaoContextがそのまま返る。
    • setMetricsName

      public void setMetricsName(String metricsName)
      メトリクスの名前を設定する。
      Parameters:
      metricsName - メトリクスの名前
    • getMetricsName

      public String getMetricsName()
      メトリクス名を取得する。
      Returns:
      メトリクス名
    • setMetricsDescription

      public void setMetricsDescription(String metricsDescription)
      メトリクスの説明を設定する。
      Parameters:
      metricsDescription - メトリクスの説明
    • getMetricsDescription

      public String getMetricsDescription()
      メトリクスの説明を取得する。
      Returns:
      メトリクスの説明
    • getDelegate

      public DaoContext getDelegate()
      委譲先のDaoContextを取得する。
      Returns:
      委譲先の DaoContext
    • getMeterRegistry

      public io.micrometer.core.instrument.MeterRegistry getMeterRegistry()
      MeterRegistryを取得する。
      Returns:
      MeterRegistry