クラス 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, Sergey Korotaev
コンストラクターの概要
コンストラクターコンストラクター説明MyBatisDataAccessStrategy
(org.apache.ibatis.session.SqlSession sqlSession) MyBatis に基づいてDataAccessStrategy
を構築します。メソッドのサマリー
修飾子と型メソッド説明<T> void
acquireLockAll
(LockMode lockMode, ClassSE<T> domainType) 指定されたドメイン型のすべての集約のロックを取得します。<T> void
acquireLockById
(ObjectSE id, LockMode lockMode, ClassSE<T> domainType) id で指定された集約のロックを取得します。long
指定されたドメイン型を表すテーブル内の行をカウントします。<T> long
指定されたquery
に一致する、指定されたプローブ型を表すテーブル内の行をカウントします。static DataAccessStrategy
createCombinedAccessStrategy
(RelationalMappingContext context, JdbcConverter converter, NamedParameterJdbcOperations operations, org.apache.ibatis.session.SqlSession sqlSession, NamespaceStrategy namespaceStrategy, Dialect dialect) MyBatis によって定義されたクエリを最初にチェックし、見つからない場合はDefaultDataAccessStrategy
を使用するDataAccessStrategy
を作成しますstatic DataAccessStrategy
createCombinedAccessStrategy
(RelationalMappingContext context, JdbcConverter converter, NamedParameterJdbcOperations operations, org.apache.ibatis.session.SqlSession sqlSession, Dialect dialect) MyBatis によって定義されたクエリを最初にチェックし、見つからない場合はDefaultDataAccessStrategy
を使用するDataAccessStrategy
を作成しますvoid
delete
(IterableSE<ObjectSE> ids, ClassSE<?> domainType) domainType で識別されるテーブルから、ID で識別される複数の行を削除します。void
delete
(IterableSE<ObjectSE> rootIds, PersistentPropertyPath<RelationalPersistentProperty> propertyPath) rootIds によって識別されるインスタンスから、propertyPath 経由で到達可能なすべてのエンティティを削除します。void
domainType で識別されるテーブルから、ID で識別される単一の行を削除します。void
delete
(ObjectSE rootId, PersistentPropertyPath<RelationalPersistentProperty> propertyPath) rootId によって識別されるインスタンスから、propertyPath 経由で到達可能なすべてのエンティティを削除します。<T> void
指定されたドメイン型のすべてのエンティティを削除します。void
deleteAll
(PersistentPropertyPath<RelationalPersistentProperty> propertyPath) 任意のインスタンスから propertyPath 経由でアクセス可能なすべてのエンティティを削除します。<T> void
deleteWithVersion
(ObjectSE id, ClassSE<T> domainType, NumberSE previousVersion) データベースから単一のエンティティを削除し、バージョンプロパティを使用して楽観的レコードロックを適用します。<T> boolean
指定されたQuery
に一致する型domainType
の集約があるかどうかを判別します。<T> boolean
existsById
(ObjectSE id, ClassSE<T> domainType) 指定された型の指定された ID を持つ行が存在する場合に返します。<T> ListSE<T>
指定された型のすべてのエンティティをロードします。<T> ListSE<T>
指定された型のすべてのエンティティを読み込み、ページングしてソートします。<T> ListSE<T>
指定された型のすべてのエンティティをソートしてロードします。<T> ListSE<T>
SELECT
クエリを実行し、結果のアイテムをIterable
SE に変換します。<T> ListSE<T>
SELECT
クエリを実行し、結果のアイテムをIterable
SE に変換します。<T> ListSE<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> ObjectSE
insert
(T instance, ClassSE<T> domainType, Identifier identifier, IdValueSource idValueSource) 単一のエンティティのデータを挿入します。void
setNamespaceStrategy
(NamespaceStrategy namespaceStrategy) 使用する NamespaceStrategy を設定します。<T> StreamSE<T>
指定された型のすべてのエンティティをStream
SE にロードします。<T> StreamSE<T>
指定された型のすべてのエンティティをソートしてStream
SE にロードします。<T> StreamSE<T>
SELECT
クエリを実行し、結果のアイテムをStream
SE に変換します。<T> StreamSE<T>
streamAllByIds
(IterableSE<?> ids, ClassSE<T> domainType) Stream
SE に引数として渡された ID の 1 つに一致するすべてのエンティティを読み込みます。<S> boolean
データベース内の単一のエンティティのデータを更新します。<S> boolean
updateWithVersion
(S instance, ClassSE<S> domainType, NumberSE previousVersion) データベース内の単一のエンティティのデータを更新し、previousVersion
プロパティを使用して楽観的レコードロックを適用します。
コンストラクターの詳細
MyBatisDataAccessStrategy
public MyBatisDataAccessStrategy(org.apache.ibatis.session.SqlSession sqlSession) MyBatis に基づいてDataAccessStrategy
を構築します。SqlSession
にはSqlSessionTemplate
を使用するか、セッションを適切なトランザクションに結び付ける同様の実装を使用します。結果のDataAccessStrategy
は MyBatis のみを処理することに注意してください。通常必要とするDefaultDataAccessStrategy
の機能は含まれていません。createCombinedAccessStrategy(RelationalMappingContext, JdbcConverter, NamedParameterJdbcOperations, SqlSession, NamespaceStrategy, Dialect)
を使用して、このようなDataAccessStrategy
を作成します。- パラメーター:
sqlSession
- null 以外である必要があります。- 導入:
- 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
- 挿入を考慮する必要があるが、エンティティの一部ではないデータに関する情報。つまり、親エンティティと、Map
SE またはList
SE に格納されているエンティティのキー / インデックス列への参照です。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
インターフェースからコピーされた説明:DataAccessStrategy
domainType で識別されるテーブルから、ID で識別される単一の行を削除します。カスケード削除は処理されません。ステートメントの形式は
DELETE FROM … WHERE ID = :id and VERSION_COLUMN = :version
になり、行が更新されていない場合は楽観的レコードロック例外がスローされます。- 次で指定:
- インターフェース
DataAccessStrategy
のdelete
- パラメーター:
id
- 削除する行の ID。null
であってはなりません。domainType
- 削除するエンティティの型。操作するテーブルを暗黙的に決定します。null
であってはなりません。
delete
インターフェースからコピーされた説明:DataAccessStrategy
domainType で識別されるテーブルから、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) インターフェースからコピーされた説明:DataAccessStrategy
rootId によって識別されるインスタンスから、propertyPath 経由で到達可能なすべてのエンティティを削除します。- 次で指定:
- インターフェース
DataAccessStrategy
のdelete
- パラメーター:
rootId
- propertyPath のベースとなるルートオブジェクトの ID。null
であってはなりません。propertyPath
- ルートオブジェクトから削除するエンティティへのリード。null
であってはなりません。
delete
public void delete(IterableSE<ObjectSE> rootIds, PersistentPropertyPath<RelationalPersistentProperty> propertyPath) インターフェースからコピーされた説明:DataAccessStrategy
rootIds によって識別されるインスタンスから、propertyPath 経由で到達可能なすべてのエンティティを削除します。- 次で指定:
- インターフェース
DataAccessStrategy
のdelete
- パラメーター:
rootIds
- propertyPath のベースとなるルートオブジェクトの ID。null
または空であってはなりません。propertyPath
- ルートオブジェクトから削除するエンティティへのリード。null
であってはなりません。
deleteAll
インターフェースからコピーされた説明:DataAccessStrategy
指定されたドメイン型のすべてのエンティティを削除します。- 次で指定:
- インターフェース
DataAccessStrategy
のdeleteAll
- 型パラメーター:
T
- ドメイン型の型。- パラメーター:
domainType
- すべてのエントリを削除するドメイン型。null
であってはなりません。
deleteAll
インターフェースからコピーされた説明:DataAccessStrategy
任意のインスタンスから propertyPath 経由でアクセス可能なすべてのエンティティを削除します。- 次で指定:
- インターフェース
DataAccessStrategy
のdeleteAll
- パラメーター:
propertyPath
- ルートオブジェクトから削除するエンティティへのリード。null
であってはなりません。
acquireLockById
インターフェースからコピーされた説明:DataAccessStrategy
id で指定された集約のロックを取得します。- 次で指定:
- インターフェース
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
ではないことが保証されています。
streamAll
インターフェースからコピーされた説明:DataAccessStrategy
指定された型のすべてのエンティティをStream
SE にロードします。- 次で指定:
- インターフェース
DataAccessStrategy
のstreamAll
- 型パラメーター:
T
- ロードするエンティティの型。- パラメーター:
domainType
- ロードするエンティティの型。null
であってはなりません。- 戻り値:
null
ではないことが保証されています。
findAllById
インターフェースからコピーされた説明:DataAccessStrategy
引数として渡された ID のいずれかに一致するすべてのエンティティをロードします。渡される ID の数が返されるエンティティの数と一致することは保証されません。- 次で指定:
- インターフェース
DataAccessStrategy
のfindAllById
- 型パラメーター:
T
- ロードするエンティティの型。- パラメーター:
ids
- ロードするエンティティの ID。null
であってはなりません。domainType
- ロードするエンティティの型。null
であってはなりません。- 戻り値:
- ロードされたエンティティ。
null
ではないことが保証されています。
streamAllByIds
インターフェースからコピーされた説明:DataAccessStrategy
Stream
SE に引数として渡された ID の 1 つに一致するすべてのエンティティを読み込みます。渡された ID の数が返されるエンティティの数と一致することは保証されません。- 次で指定:
- インターフェース
DataAccessStrategy
のstreamAllByIds
- 型パラメーター:
T
- ロードするエンティティの型。- パラメーター:
ids
- ロードするエンティティの ID。null
であってはなりません。domainType
- ロードするエンティティの型。null
であってはなりません。- 戻り値:
- ロードされたエンティティ。
null
ではないことが保証されています。
findAllByPath
public ListSE<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
ではないことが保証されています。
streamAll
インターフェースからコピーされた説明:DataAccessStrategy
指定された型のすべてのエンティティをソートしてStream
SE にロードします。- 次で指定:
- インターフェース
DataAccessStrategy
のstreamAll
- 型パラメーター:
T
- ロードするエンティティの型。- パラメーター:
domainType
- ロードするエンティティの型。null
であってはなりません。sort
- ソート情報。null
であってはなりません。- 戻り値:
null
ではないことが保証されています。
findAll
インターフェースからコピーされた説明:DataAccessStrategy
指定された型のすべてのエンティティを読み込み、ページングしてソートします。- 次で指定:
- インターフェース
DataAccessStrategy
のfindAll
- 型パラメーター:
T
- ロードするエンティティの型。- パラメーター:
domainType
- ロードするエンティティの型。null
であってはなりません。pageable
- ページネーション情報。null
であってはなりません。- 戻り値:
null
ではないことが保証されています。
findOne
インターフェースからコピーされた説明:DataAccessStrategy
SELECT
クエリを実行し、結果のアイテムをエンティティに変換して、結果が 1 つだけになるようにします。- 次で指定:
- インターフェース
DataAccessStrategy
のfindOne
- パラメーター:
query
- null であってはなりません。probeType
- エンティティの型。null
であってはなりません。- 戻り値:
- 正確に 1 つの結果、または一致が見つからない場合は
Optional.empty()
。
findAll
インターフェースからコピーされた説明:DataAccessStrategy
SELECT
クエリを実行し、結果のアイテムをIterable
SE に変換します。- 次で指定:
- インターフェース
DataAccessStrategy
のfindAll
- パラメーター:
query
- null であってはなりません。probeType
- エンティティの型。null
であってはなりません。- 戻り値:
- 一致するすべての結果を含む null 以外のリスト。
streamAll
インターフェースからコピーされた説明:DataAccessStrategy
SELECT
クエリを実行し、結果のアイテムをStream
SE に変換します。- 次で指定:
- インターフェース
DataAccessStrategy
のstreamAll
- パラメーター:
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
ではないことが保証されています。