インターフェース DataAccessStrategy

すべてのスーパーインターフェース:
RelationResolver
すべての既知の実装クラス:
CascadingDataAccessStrategyDefaultDataAccessStrategyDelegatingDataAccessStrategyMyBatisDataAccessStrategy

public interface DataAccessStrategy extends RelationResolver
メソッドごとに 1 つの SQL ステートメントで実装できるデータベースへのアクセスの抽象化。完全な集約に関連する相互作用を提供する JdbcAggregateOperations とは対照的に、1 つのエンティティに関連します。
作成者:
Jens Schauder, Tyler Van Gorder, Milan Milanov, Myeonghyeon Lee, Chirag Tailor, Diego Krupitza, Sergey Korotaev
  • メソッドの詳細

    • getDialect

      Dialect getDialect()
      戻り値:
      この戦略で使用されるダイアレクト。
      導入:
      4.0
    • getJdbcOperations

      NamedParameterJdbcOperations getJdbcOperations()
      戻り値:
      この戦略で使用される NamedParameterJdbcOperations
      導入:
      4.0
    • insert

      <T> @Nullable ObjectSE insert(T instance, ClassSE<T> domainType, Identifier identifier, IdValueSource idValueSource)
      単一のエンティティのデータを挿入します。参照されたエンティティは処理されません。
      型パラメーター:
      T - インスタンスの型。
      パラメーター:
      instance - 格納されるインスタンス。null であってはなりません。
      domainType - インスタンスの型。null であってはなりません。
      identifier - 挿入を考慮する必要があるが、エンティティの一部ではないデータに関する情報。つまり、親エンティティと、MapSE または ListSE に格納されているエンティティのキー / インデックス列への参照です。
      idValueSource - インサート用の IdValueSource
      戻り値:
      データベースが生成した ID(存在する場合)。
      導入:
      2.4
    • insert

      <T> @Nullable ObjectSE[] insert(ListSE<InsertSubject<T>> insertSubjects, ClassSE<T> domainType, IdValueSource idValueSource)
      複数のエンティティのデータを挿入します。
      型パラメーター:
      T - インスタンスの型。
      パラメーター:
      insertSubjects - 挿入されるサブジェクト。各サブジェクトにはインスタンスとその識別子が含まれます。null であってはなりません。
      domainType - インスタンスの型。null であってはなりません。
      idValueSource - インサート用の IdValueSource
      戻り値:
      ID が生成された場合、挿入された各レコードに対応する ID。ID が生成されなかった場合、要素は null になります。
      導入:
      2.4
    • update

      <T> boolean update(T instance, ClassSE<T> domainType)
      データベース内の単一のエンティティのデータを更新します。参照されたエンティティは処理されません。
      型パラメーター:
      T - 保存するインスタンスの型。
      パラメーター:
      instance - 保存するインスタンス。null であってはなりません。
      domainType - 保存するインスタンスの型。null であってはなりません。
      戻り値:
      更新によって実際に行が更新されたかどうか。
    • updateWithVersion

      <T> boolean updateWithVersion(T instance, ClassSE<T> domainType, NumberSE previousVersion)
      データベース内の単一のエンティティのデータを更新し、previousVersion プロパティを使用して楽観的レコードロックを適用します。参照されたエンティティは処理されません。

      ステートメントの形式は UPDATE … SET … WHERE ID = :id and VERSION_COLUMN = :previousVersion  になり、行が更新されていない場合は楽観的レコードロック例外がスローされます。

      型パラメーター:
      T - 保存するインスタンスの型。
      パラメーター:
      instance - 保存するインスタンス。null であってはなりません。
      domainType - 保存するインスタンスの型。null であってはなりません。
      previousVersion - 保存されるインスタンスに割り当てられた以前のバージョン。
      戻り値:
      更新によって実際に行が更新されたかどうか。
      例外:
      OptimisticLockingFailureException - オプティミスティックロックのバージョンチェックが失敗したと仮定して、更新で少なくとも 1 行の更新に失敗した場合。
      導入:
      2.0
    • delete

      void delete(ObjectSE id, ClassSE<?> domainType)
      domainType で識別されるテーブルから、ID で識別される単一の行を削除します。カスケード削除は処理されません。

      ステートメントの形式は DELETE FROM … WHERE ID = :id and VERSION_COLUMN = :version  になり、行が更新されていない場合は楽観的レコードロック例外がスローされます。

      パラメーター:
      id - 削除する行の ID。null であってはなりません。
      domainType - 削除するエンティティの型。操作するテーブルを暗黙的に決定します。null であってはなりません。
    • delete

      void delete(IterableSE<ObjectSE> ids, ClassSE<?> domainType)
      domainType で識別されるテーブルから、ID で識別される複数の行を削除します。カスケード削除は処理されません。

      ステートメントの形式は DELETE FROM … WHERE ID IN (:ids)  になり、行が更新されていない場合は楽観的レコードロック例外がスローされます。

      パラメーター:
      ids - 削除する行の ID。null であってはなりません。
      domainType - 削除するエンティティの型。操作するテーブルを暗黙的に決定します。null であってはなりません。
      導入:
      3.0
    • deleteWithVersion

      <T> void deleteWithVersion(ObjectSE id, ClassSE<T> domainType, NumberSE previousVersion)
      データベースから単一のエンティティを削除し、バージョンプロパティを使用して楽観的レコードロックを適用します。カスケード削除を処理しません。
      パラメーター:
      id - 削除する行の ID。null であってはなりません。
      domainType - 削除するエンティティの型。操作するテーブルを暗黙的に決定します。null であってはなりません。
      previousVersion - 保存されるインスタンスに割り当てられた以前のバージョン。
      例外:
      OptimisticLockingFailureException - オプティミスティックロックのバージョンチェックが失敗したと仮定して、更新で少なくとも 1 行の更新に失敗した場合。
      導入:
      2.0
    • delete

      void delete(ObjectSE rootId, PersistentPropertyPath<RelationalPersistentProperty> propertyPath)
      rootId によって識別されるインスタンスから、propertyPath 経由で到達可能なすべてのエンティティを削除します。
      パラメーター:
      rootId - propertyPath のベースとなるルートオブジェクトの ID。null であってはなりません。
      propertyPath - ルートオブジェクトから削除するエンティティへのリード。null であってはなりません。
    • delete

      rootIds によって識別されるインスタンスから、propertyPath 経由で到達可能なすべてのエンティティを削除します。
      パラメーター:
      rootIds - propertyPath のベースとなるルートオブジェクトの ID。null または空であってはなりません。
      propertyPath - ルートオブジェクトから削除するエンティティへのリード。null であってはなりません。
    • deleteAll

      <T> void deleteAll(ClassSE<T> domainType)
      指定されたドメイン型のすべてのエンティティを削除します。
      型パラメーター:
      T - ドメイン型の型。
      パラメーター:
      domainType - すべてのエントリを削除するドメイン型。null であってはなりません。
    • deleteAll

      任意のインスタンスから propertyPath 経由でアクセス可能なすべてのエンティティを削除します。
      パラメーター:
      propertyPath - ルートオブジェクトから削除するエンティティへのリード。null であってはなりません。
    • acquireLockById

      <T> void acquireLockById(ObjectSE id, LockMode lockMode, ClassSE<T> domainType)
      id で指定された集約のロックを取得します。
      パラメーター:
      id - ロードするエンティティの ID。null であってはなりません。
      lockMode - 選択のためのロックモード。null であってはなりません。
      domainType - エンティティのドメイン型。null であってはなりません。
    • acquireLockAll

      <T> void acquireLockAll(LockMode lockMode, ClassSE<T> domainType)
      指定されたドメイン型のすべての集約のロックを取得します。
      パラメーター:
      lockMode - 選択のためのロックモード。null であってはなりません。
      domainType - エンティティのドメイン型。null であってはなりません。
    • count

      long count(ClassSE<?> domainType)
      指定されたドメイン型を表すテーブル内の行をカウントします。
      パラメーター:
      domainType - 要素をカウントするドメイン型。null であってはなりません。
      戻り値:
      カウント。null ではないことが保証されています。
    • count

      <T> long count(Query query, ClassSE<T> domainType)
      指定された query に一致する、指定されたプローブ型を表すテーブル内の行をカウントします。
      パラメーター:
      domainType - 要素をカウントするプローブ型。null であってはなりません。
      query - 要素が一致する必要があるクエリ。
      戻り値:
      カウント。null ではないことが保証されています。
      導入:
      3.0
    • exists

      <T> boolean exists(Query query, ClassSE<T> domainType)
      指定された Query に一致する型 domainType の集約があるかどうかを判別します。
      パラメーター:
      query - null であってはなりません。
      domainType - エンティティの型。null であってはなりません。
      戻り値:
      オブジェクトが存在する場合は true。
      導入:
      3.0
    • existsById

      <T> boolean existsById(ObjectSE id, ClassSE<T> domainType)
      指定された型の指定された ID を持つ行が存在する場合に返します。
      型パラメーター:
      T - エンティティの型。
      パラメーター:
      id - チェックするエンティティの ID。null であってはなりません。
      domainType - チェックするエンティティの型。null であってはなりません。
      戻り値:
      一致する行が存在する場合は true、そうでない場合は false
    • findById

      <T extends @Nullable ObjectSE> T findById(ObjectSE id, ClassSE<T> domainType)
      型と ID で識別される単一のエンティティをロードします。
      型パラメーター:
      T - エンティティの型。
      パラメーター:
      id - ロードするエンティティの ID。null であってはなりません。
      domainType - エンティティのドメイン型。null であってはなりません。
      戻り値:
      null を返す場合があります。
    • findAll

      <T> IterableSE<T> findAll(ClassSE<T> domainType)
      指定された型のすべてのエンティティをロードします。
      型パラメーター:
      T - ロードするエンティティの型。
      パラメーター:
      domainType - ロードするエンティティの型。null であってはなりません。
      戻り値:
      null ではないことが保証されています。
    • streamAll

      <T> StreamSE<T> streamAll(ClassSE<T> domainType)
      指定された型のすべてのエンティティを StreamSE にロードします。
      型パラメーター:
      T - ロードするエンティティの型。
      パラメーター:
      domainType - ロードするエンティティの型。null であってはなりません。
      戻り値:
      null ではないことが保証されています。
    • findAllById

      <T> IterableSE<T> findAllById(IterableSE<?> ids, ClassSE<T> domainType)
      引数として渡された ID のいずれかに一致するすべてのエンティティをロードします。渡される ID の数が返されるエンティティの数と一致することは保証されません。
      型パラメーター:
      T - ロードするエンティティの型。
      パラメーター:
      ids - ロードするエンティティの ID。null であってはなりません。
      domainType - ロードするエンティティの型。null であってはなりません。
      戻り値:
      ロードされたエンティティ。null ではないことが保証されています。
    • streamAllByIds

      <T> StreamSE<T> streamAllByIds(IterableSE<?> ids, ClassSE<T> domainType)
      StreamSE に引数として渡された ID の 1 つに一致するすべてのエンティティを読み込みます。渡された ID の数が返されるエンティティの数と一致することは保証されません。
      型パラメーター:
      T - ロードするエンティティの型。
      パラメーター:
      ids - ロードするエンティティの ID。null であってはなりません。
      domainType - ロードするエンティティの型。null であってはなりません。
      戻り値:
      ロードされたエンティティ。null ではないことが保証されています。
    • findAllByPath

      インターフェースからコピーされた説明: RelationResolver
      パスを介して到達可能なすべてのエンティティを検索します。
      次で指定:
      インターフェース RelationResolverfindAllByPath 
      パラメーター:
      identifier - ロードされるエンティティの親を識別する ID、マップキー、リストインデックスの組み合わせ。null であってはなりません。
      path - 集約ルートから解決されるエンティティへのパス。null であってはなりません。
      戻り値:
      null でないことが保証されています。
    • findAll

      <T> IterableSE<T> findAll(ClassSE<T> domainType, Sort sort)
      指定された型のすべてのエンティティをソートしてロードします。
      型パラメーター:
      T - ロードするエンティティの型。
      パラメーター:
      domainType - ロードするエンティティの型。null であってはなりません。
      sort - ソート情報。null であってはなりません。
      戻り値:
      null ではないことが保証されています。
      導入:
      2.0
    • streamAll

      <T> StreamSE<T> streamAll(ClassSE<T> domainType, Sort sort)
      指定された型のすべてのエンティティをソートして StreamSE にロードします。
      型パラメーター:
      T - ロードするエンティティの型。
      パラメーター:
      domainType - ロードするエンティティの型。null であってはなりません。
      sort - ソート情報。null であってはなりません。
      戻り値:
      null ではないことが保証されています。
      導入:
      2.0
    • findAll

      <T> IterableSE<T> findAll(ClassSE<T> domainType, Pageable pageable)
      指定された型のすべてのエンティティを読み込み、ページングしてソートします。
      型パラメーター:
      T - ロードするエンティティの型。
      パラメーター:
      domainType - ロードするエンティティの型。null であってはなりません。
      pageable - ページネーション情報。null であってはなりません。
      戻り値:
      null ではないことが保証されています。
      導入:
      2.0
    • findOne

      <T> OptionalSE<T> findOne(Query query, ClassSE<T> domainType)
      SELECT クエリを実行し、結果のアイテムをエンティティに変換して、結果が 1 つだけになるようにします。
      パラメーター:
      query - null であってはなりません。
      domainType - エンティティの型。null であってはなりません。
      戻り値:
      正確に 1 つの結果、または一致が見つからない場合は Optional.empty()
      例外:
      IncorrectResultSizeDataAccessException - 複数の一致が見つかった場合。
      導入:
      3.0
    • findAll

      <T> IterableSE<T> findAll(Query query, ClassSE<T> domainType)
      SELECT クエリを実行し、結果のアイテムを IterableSE に変換します。
      パラメーター:
      query - null であってはなりません。
      domainType - エンティティの型。null であってはなりません。
      戻り値:
      一致するすべての結果を含む null 以外のリスト。
      例外:
      IncorrectResultSizeDataAccessException - 複数の一致が見つかった場合。
      導入:
      3.0
    • streamAll

      <T> StreamSE<T> streamAll(Query query, ClassSE<T> domainType)
      SELECT クエリを実行し、結果のアイテムを StreamSE に変換します。
      パラメーター:
      query - null であってはなりません。
      domainType - エンティティの型。null であってはなりません。
      戻り値:
      一致するすべての結果を含む null 以外のリスト。
      例外:
      IncorrectResultSizeDataAccessException - 複数の一致が見つかった場合。
      導入:
      3.0
    • findAll

      <T> IterableSE<T> findAll(Query query, ClassSE<T> domainType, Pageable pageable)
      SELECT クエリを実行し、結果の項目を IterableSE に変換します。結果に Pageable を適用します。
      パラメーター:
      query - null であってはなりません。
      domainType - エンティティの型。null であってはなりません。
      pageable - 適用するページネーション。null であってはなりません。
      戻り値:
      一致するすべての結果を含む null 以外のリスト。
      例外:
      IncorrectResultSizeDataAccessException - 複数の一致が見つかった場合。
      導入:
      3.0