クラス MyBatisDataAccessStrategy
java.lang.ObjectSE
org.springframework.data.jdbc.mybatis.MyBatisDataAccessStrategy
- 実装されているすべてのインターフェース:
DataAccessStrategy,RelationResolver
MyBatis に基づく
DataAccessStrategy 実装。各メソッドはステートメントにマップされます。ステートメントの名前は次のように構成されます。デフォルトでは、名前空間はエンティティのクラスと接尾辞 "Mapper" に基づきます。その後にドットで区切られたメソッド名が続きます。引数として PropertyPath を取るメソッドの場合、関連するエンティティはパスのルートのエンティティであり、パス自体はステートメント名に追加されたドットで区切られた文字列として取得されます。各ステートメントは、少なくとも entityType が設定されている MyBatisContext のインスタンスを取得します。PropertyPath を取るメソッドの場合、コンテキストがリーフ型のクラスに設定されている場合、entityType になります。- 作成者:
- Jens Schauder, Kazuki Shimizu, Oliver Gierke, Mark Paluch, Tyler Van Gorder, Milan Milanov, Myeonghyeon Lee, Chirag Tailor, Christopher Klein, Mikhail Polivakha
コンストラクターの概要
コンストラクターコンストラクター説明MyBatisDataAccessStrategy(org.apache.ibatis.session.SqlSession sqlSession) MyBatisDataAccessStrategy(org.apache.ibatis.session.SqlSession sqlSession, IdentifierProcessing identifierProcessing) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。方法の概要
修飾子と型メソッド説明<T> voidacquireLockAll(LockMode lockMode, ClassSE<T> domainType) 指定されたドメイン型のすべての集約のロックを取得します。<T> voidacquireLockById(ObjectSE id, LockMode lockMode, ClassSE<T> domainType) id で指定された集約のロックを取得します。long指定されたドメイン型を表すテーブル内の行をカウントします。<T> long指定されたqueryに一致する、指定されたプローブ型を表すテーブル内の行をカウントします。static DataAccessStrategycreateCombinedAccessStrategy(RelationalMappingContext context, JdbcConverter converter, NamedParameterJdbcOperations operations, org.apache.ibatis.session.SqlSession sqlSession, NamespaceStrategy namespaceStrategy, Dialect dialect) MyBatis によって定義されたクエリを最初にチェックし、見つからない場合はDefaultDataAccessStrategyを使用するDataAccessStrategyを作成しますstatic DataAccessStrategycreateCombinedAccessStrategy(RelationalMappingContext context, JdbcConverter converter, NamedParameterJdbcOperations operations, org.apache.ibatis.session.SqlSession sqlSession, Dialect dialect) MyBatis によって定義されたクエリを最初にチェックし、見つからない場合はDefaultDataAccessStrategyを使用するDataAccessStrategyを作成しますvoiddelete(IterableSE<ObjectSE> ids, ClassSE<?> domainType) domainType で識別されるテーブルから、ID で識別される複数の行を削除します。voiddelete(IterableSE<ObjectSE> rootIds, PersistentPropertyPath<RelationalPersistentProperty> propertyPath) rootIds によって識別されるインスタンスから、propertyPath 経由で到達可能なすべてのエンティティを削除します。voiddomainType で識別されるテーブルから、ID で識別される単一の行を削除します。voiddelete(ObjectSE rootId, PersistentPropertyPath<RelationalPersistentProperty> propertyPath) rootId によって識別されるインスタンスから、propertyPath 経由で到達可能なすべてのエンティティを削除します。<T> void指定されたドメイン型のすべてのエンティティを削除します。voiddeleteAll(PersistentPropertyPath<RelationalPersistentProperty> propertyPath) 任意のインスタンスから propertyPath 経由でアクセス可能なすべてのエンティティを削除します。<T> voiddeleteWithVersion(ObjectSE id, ClassSE<T> domainType, NumberSE previousVersion) データベースから単一のエンティティを削除し、バージョンプロパティを使用して楽観的レコードロックを適用します。<T> boolean指定されたQueryに一致する型domainTypeの集約があるかどうかを判別します。<T> booleanexistsById(ObjectSE id, ClassSE<T> domainType) 指定された型の指定された ID を持つ行が存在する場合に返します。<T> IterableSE<T>指定された型のすべてのエンティティをロードします。<T> IterableSE<T>指定された型のすべてのエンティティを読み込み、ページングしてソートします。<T> IterableSE<T>指定された型のすべてのエンティティをソートしてロードします。<T> IterableSE<T>SELECTクエリを実行し、結果のアイテムをIterableSE に変換します。<T> IterableSE<T>SELECTクエリを実行し、結果のアイテムをIterableSE に変換します。<T> IterableSE<T>findAllById(IterableSE<?> ids, ClassSE<T> domainType) 引数として渡された ID のいずれかに一致するすべてのエンティティをロードします。findAllByPath(Identifier identifier, PersistentPropertyPath<? extends RelationalPersistentProperty> path) パスを介して到達可能なすべてのエンティティを検索します。<T> T型と ID で識別される単一のエンティティをロードします。<T> OptionalSE<T>SELECTクエリを実行し、結果のアイテムをエンティティに変換して、結果が 1 つだけになるようにします。<T> ObjectSE[]insert(ListSE<InsertSubject<T>> insertSubjects, ClassSE<T> domainType, IdValueSource idValueSource) 複数のエンティティのデータを挿入します。<T> ObjectSEinsert(T instance, ClassSE<T> domainType, Identifier identifier, IdValueSource idValueSource) 単一のエンティティのデータを挿入します。voidsetNamespaceStrategy(NamespaceStrategy namespaceStrategy) 使用する NamespaceStrategy を設定します。<S> booleanデータベース内の単一のエンティティのデータを更新します。<S> booleanupdateWithVersion(S instance, ClassSE<S> domainType, NumberSE previousVersion) データベース内の単一のエンティティのデータを更新し、previousVersionプロパティを使用して楽観的レコードロックを適用します。
コンストラクターの詳細
MyBatisDataAccessStrategy
@DeprecatedSE(since="3.1", forRemoval=true) public MyBatisDataAccessStrategy(org.apache.ibatis.session.SqlSession sqlSession, IdentifierProcessing identifierProcessing) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。identifierProcessing はSqlIdentifierに適用するプロセスでは考慮されなくなるため、代わりにMyBatisDataAccessStrategy(org.apache.ibatis.session.SqlSession)コンストラクターを使用します。MyBatis に基づいてDataAccessStrategyを構築します。SqlSessionにはSqlSessionTemplateを使用するか、セッションを適切なトランザクションに結び付ける同様の実装を使用します。結果のDataAccessStrategyは MyBatis のみを処理することに注意してください。通常必要とするDefaultDataAccessStrategyの機能は含まれていません。createCombinedAccessStrategy(RelationalMappingContext, JdbcConverter, NamedParameterJdbcOperations, SqlSession, NamespaceStrategy, Dialect)を使用して、このようなDataAccessStrategyを作成します。- パラメーター:
sqlSession- null 以外である必要があります。
MyBatisDataAccessStrategy
public MyBatisDataAccessStrategy(org.apache.ibatis.session.SqlSession sqlSession) - 導入:
- 3.1
メソッドの詳細
createCombinedAccessStrategy
public static DataAccessStrategy createCombinedAccessStrategy(RelationalMappingContext context, JdbcConverter converter, NamedParameterJdbcOperations operations, org.apache.ibatis.session.SqlSession sqlSession, Dialect dialect) MyBatis によって定義されたクエリを最初にチェックし、見つからない場合はDefaultDataAccessStrategyを使用するDataAccessStrategyを作成しますcreateCombinedAccessStrategy
public static DataAccessStrategy createCombinedAccessStrategy(RelationalMappingContext context, JdbcConverter converter, NamedParameterJdbcOperations operations, org.apache.ibatis.session.SqlSession sqlSession, NamespaceStrategy namespaceStrategy, Dialect dialect) MyBatis によって定義されたクエリを最初にチェックし、見つからない場合はDefaultDataAccessStrategyを使用するDataAccessStrategyを作成しますsetNamespaceStrategy
使用する NamespaceStrategy を設定します。- パラメーター:
namespaceStrategy- null 以外である必要があります
insert
public <T> ObjectSE insert(T instance, ClassSE<T> domainType, Identifier identifier, IdValueSource idValueSource) インターフェースからコピーされた説明:DataAccessStrategy単一のエンティティのデータを挿入します。参照されたエンティティは処理されません。- 次で指定:
- インターフェース
DataAccessStrategyのinsert - 型パラメーター:
T- インスタンスの型。- パラメーター:
instance- 格納されるインスタンス。nullであってはなりません。domainType- インスタンスの型。nullであってはなりません。identifier- 挿入を考慮する必要があるが、エンティティの一部ではないデータに関する情報。つまり、親エンティティと、MapSE またはListSE に格納されているエンティティのキー / インデックス列への参照です。idValueSource- インサート用のIdValueSource。- 戻り値:
- データベースが生成した ID(存在する場合)。
insert
public <T> ObjectSE[] insert(ListSE<InsertSubject<T>> insertSubjects, ClassSE<T> domainType, IdValueSource idValueSource) インターフェースからコピーされた説明:DataAccessStrategy複数のエンティティのデータを挿入します。- 次で指定:
- インターフェース
DataAccessStrategyのinsert - 型パラメーター:
T- インスタンスの型。- パラメーター:
insertSubjects- 挿入されるサブジェクト。各サブジェクトにはインスタンスとその識別子が含まれます。nullであってはなりません。domainType- インスタンスの型。nullであってはなりません。idValueSource- インサート用のIdValueSource。- 戻り値:
- ID が生成された場合、挿入された各レコードに対応する ID。ID が生成されなかった場合、要素は
nullになります。
update
インターフェースからコピーされた説明:DataAccessStrategyデータベース内の単一のエンティティのデータを更新します。参照されたエンティティは処理されません。- 次で指定:
- インターフェース
DataAccessStrategyのupdate - 型パラメーター:
S- 保存するインスタンスの型。- パラメーター:
instance- 保存するインスタンス。nullであってはなりません。domainType- 保存するインスタンスの型。nullであってはなりません。- 戻り値:
- 更新によって実際に行が更新されたかどうか。
updateWithVersion
インターフェースからコピーされた説明:DataAccessStrategyデータベース内の単一のエンティティのデータを更新し、previousVersionプロパティを使用して楽観的レコードロックを適用します。参照されたエンティティは処理されません。ステートメントの形式は
UPDATE … SET … WHERE ID = :id and VERSION_COLUMN = :previousVersionになり、行が更新されていない場合は楽観的レコードロック例外がスローされます。- 次で指定:
- インターフェース
DataAccessStrategyのupdateWithVersion - 型パラメーター:
S- 保存するインスタンスの型。- パラメーター:
instance- 保存するインスタンス。nullであってはなりません。domainType- 保存するインスタンスの型。nullであってはなりません。previousVersion- 保存されるインスタンスに割り当てられた以前のバージョン。- 戻り値:
- 更新によって実際に行が更新されたかどうか。
delete
インターフェースからコピーされた説明:DataAccessStrategydomainType で識別されるテーブルから、ID で識別される単一の行を削除します。カスケード削除は処理されません。ステートメントの形式は
DELETE FROM … WHERE ID = :id and VERSION_COLUMN = :versionになり、行が更新されていない場合は楽観的レコードロック例外がスローされます。- 次で指定:
- インターフェース
DataAccessStrategyのdelete - パラメーター:
id- 削除する行の ID。nullであってはなりません。domainType- 削除するエンティティの型。操作するテーブルを暗黙的に決定します。nullであってはなりません。
delete
インターフェースからコピーされた説明:DataAccessStrategydomainType で識別されるテーブルから、ID で識別される複数の行を削除します。カスケード削除は処理されません。ステートメントの形式は
DELETE FROM … WHERE ID IN (:ids)になり、行が更新されていない場合は楽観的レコードロック例外がスローされます。- 次で指定:
- インターフェース
DataAccessStrategyのdelete - パラメーター:
ids- 削除する行の ID。nullであってはなりません。domainType- 削除するエンティティの型。操作するテーブルを暗黙的に決定します。nullであってはなりません。
deleteWithVersion
インターフェースからコピーされた説明:DataAccessStrategyデータベースから単一のエンティティを削除し、バージョンプロパティを使用して楽観的レコードロックを適用します。カスケード削除を処理しません。- 次で指定:
- インターフェース
DataAccessStrategyのdeleteWithVersion - パラメーター:
id- 削除する行の ID。nullであってはなりません。domainType- 削除するエンティティの型。操作するテーブルを暗黙的に決定します。nullであってはなりません。previousVersion- 保存されるインスタンスに割り当てられた以前のバージョン。
delete
public void delete(ObjectSE rootId, PersistentPropertyPath<RelationalPersistentProperty> propertyPath) インターフェースからコピーされた説明:DataAccessStrategyrootId によって識別されるインスタンスから、propertyPath 経由で到達可能なすべてのエンティティを削除します。- 次で指定:
- インターフェース
DataAccessStrategyのdelete - パラメーター:
rootId- propertyPath のベースとなるルートオブジェクトの ID。nullであってはなりません。propertyPath- ルートオブジェクトから削除するエンティティへのリード。nullであってはなりません。
delete
public void delete(IterableSE<ObjectSE> rootIds, PersistentPropertyPath<RelationalPersistentProperty> propertyPath) インターフェースからコピーされた説明:DataAccessStrategyrootIds によって識別されるインスタンスから、propertyPath 経由で到達可能なすべてのエンティティを削除します。- 次で指定:
- インターフェース
DataAccessStrategyのdelete - パラメーター:
rootIds- propertyPath のベースとなるルートオブジェクトの ID。nullまたは空であってはなりません。propertyPath- ルートオブジェクトから削除するエンティティへのリード。nullであってはなりません。
deleteAll
インターフェースからコピーされた説明:DataAccessStrategy指定されたドメイン型のすべてのエンティティを削除します。- 次で指定:
- インターフェース
DataAccessStrategyのdeleteAll - 型パラメーター:
T- ドメイン型の型。- パラメーター:
domainType- すべてのエントリを削除するドメイン型。nullであってはなりません。
deleteAll
インターフェースからコピーされた説明:DataAccessStrategy任意のインスタンスから propertyPath 経由でアクセス可能なすべてのエンティティを削除します。- 次で指定:
- インターフェース
DataAccessStrategyのdeleteAll - パラメーター:
propertyPath- ルートオブジェクトから削除するエンティティへのリード。nullであってはなりません。
acquireLockById
インターフェースからコピーされた説明:DataAccessStrategyid で指定された集約のロックを取得します。- 次で指定:
- インターフェース
DataAccessStrategyのacquireLockById - パラメーター:
id- ロードするエンティティの ID。nullであってはなりません。lockMode- 選択のためのロックモード。nullであってはなりません。domainType- エンティティのドメイン型。nullであってはなりません。
acquireLockAll
インターフェースからコピーされた説明:DataAccessStrategy指定されたドメイン型のすべての集約のロックを取得します。- 次で指定:
- インターフェース
DataAccessStrategyのacquireLockAll - パラメーター:
lockMode- 選択のためのロックモード。nullであってはなりません。domainType- エンティティのドメイン型。nullであってはなりません。
findById
インターフェースからコピーされた説明:DataAccessStrategy型と ID で識別される単一のエンティティをロードします。- 次で指定:
- インターフェース
DataAccessStrategyのfindById - 型パラメーター:
T- エンティティの型。- パラメーター:
id- ロードするエンティティの ID。nullであってはなりません。domainType- エンティティのドメイン型。nullであってはなりません。- 戻り値:
nullを返す場合があります。
findAll
インターフェースからコピーされた説明:DataAccessStrategy指定された型のすべてのエンティティをロードします。- 次で指定:
- インターフェース
DataAccessStrategyのfindAll - 型パラメーター:
T- ロードするエンティティの型。- パラメーター:
domainType- ロードするエンティティの型。nullであってはなりません。- 戻り値:
nullではないことが保証されています。
findAllById
インターフェースからコピーされた説明:DataAccessStrategy引数として渡された ID のいずれかに一致するすべてのエンティティをロードします。渡される ID の数が返されるエンティティの数と一致することは保証されません。- 次で指定:
- インターフェース
DataAccessStrategyのfindAllById - 型パラメーター:
T- ロードするエンティティの型。- パラメーター:
ids- ロードするエンティティの ID。nullであってはなりません。domainType- ロードするエンティティの型。nullであってはなりません。- 戻り値:
- ロードされたエンティティ。
nullではないことが保証されています。
findAllByPath
public IterableSE<ObjectSE> findAllByPath(Identifier identifier, PersistentPropertyPath<? extends RelationalPersistentProperty> path) インターフェースからコピーされた説明:RelationResolverパスを介して到達可能なすべてのエンティティを検索します。- 次で指定:
- インターフェース
DataAccessStrategyのfindAllByPath - 次で指定:
- インターフェース
RelationResolverのfindAllByPath - パラメーター:
identifier- ロードされるエンティティの親を識別する ID、マップキー、リストインデックスの組み合わせ。null であってはなりません。path- 集約ルートから解決されるエンティティへのパス。null であってはなりません。- 戻り値:
- null でないことが保証されています。
existsById
インターフェースからコピーされた説明:DataAccessStrategy指定された型の指定された ID を持つ行が存在する場合に返します。- 次で指定:
- インターフェース
DataAccessStrategyのexistsById - 型パラメーター:
T- エンティティの型。- パラメーター:
id- チェックするエンティティの ID。nullであってはなりません。domainType- チェックするエンティティの型。nullであってはなりません。- 戻り値:
- 一致する行が存在する場合は
true、そうでない場合はfalse
findAll
インターフェースからコピーされた説明:DataAccessStrategy指定された型のすべてのエンティティをソートしてロードします。- 次で指定:
- インターフェース
DataAccessStrategyのfindAll - 型パラメーター:
T- ロードするエンティティの型。- パラメーター:
domainType- ロードするエンティティの型。nullであってはなりません。sort- ソート情報。nullであってはなりません。- 戻り値:
nullではないことが保証されています。
findAll
インターフェースからコピーされた説明:DataAccessStrategy指定された型のすべてのエンティティを読み込み、ページングしてソートします。- 次で指定:
- インターフェース
DataAccessStrategyのfindAll - 型パラメーター:
T- ロードするエンティティの型。- パラメーター:
domainType- ロードするエンティティの型。nullであってはなりません。pageable- ページネーション情報。nullであってはなりません。- 戻り値:
nullではないことが保証されています。
findOne
インターフェースからコピーされた説明:DataAccessStrategySELECTクエリを実行し、結果のアイテムをエンティティに変換して、結果が 1 つだけになるようにします。- 次で指定:
- インターフェース
DataAccessStrategyのfindOne - パラメーター:
query- null であってはなりません。probeType- エンティティの型。nullであってはなりません。- 戻り値:
- 正確に 1 つの結果、または一致が見つからない場合は
Optional.empty()。
findAll
インターフェースからコピーされた説明:DataAccessStrategySELECTクエリを実行し、結果のアイテムをIterableSE に変換します。- 次で指定:
- インターフェース
DataAccessStrategyのfindAll - パラメーター:
query- null であってはなりません。probeType- エンティティの型。nullであってはなりません。- 戻り値:
- 一致するすべての結果を含む null 以外のリスト。
findAll
インターフェースからコピーされた説明:DataAccessStrategy- 次で指定:
- インターフェース
DataAccessStrategyのfindAll - パラメーター:
query- null であってはなりません。probeType- エンティティの型。null であってはなりません。pageable- 適用するページネーション。null であってはなりません。- 戻り値:
- 一致するすべての結果を含む null 以外のリスト。
exists
インターフェースからコピーされた説明:DataAccessStrategy指定されたQueryに一致する型domainTypeの集約があるかどうかを判別します。- 次で指定:
- インターフェース
DataAccessStrategyのexists - パラメーター:
query- null であってはなりません。probeType- エンティティの型。nullであってはなりません。- 戻り値:
- オブジェクトが存在する場合は true。
count
インターフェースからコピーされた説明:DataAccessStrategy指定されたqueryに一致する、指定されたプローブ型を表すテーブル内の行をカウントします。- 次で指定:
- インターフェース
DataAccessStrategyのcount - パラメーター:
query- 要素が一致する必要があるクエリ。probeType- 要素をカウントするプローブ型。nullであってはなりません。- 戻り値:
- カウント。
nullではないことが保証されています。
count
インターフェースからコピーされた説明:DataAccessStrategy指定されたドメイン型を表すテーブル内の行をカウントします。- 次で指定:
- インターフェース
DataAccessStrategyのcount - パラメーター:
domainType- 要素をカウントするドメイン型。nullであってはなりません。- 戻り値:
- カウント。
nullではないことが保証されています。
SqlIdentifierに適用するプロセスでは考慮されなくなるため、代わりにMyBatisDataAccessStrategy(org.apache.ibatis.session.SqlSession)コンストラクターを使用します。