クラス SimpleJpaRepository<T,ID>

java.lang.ObjectSE
org.springframework.data.jpa.repository.support.SimpleJpaRepository<T,ID>
型パラメーター:
T - 処理するエンティティの型
ID - エンティティの識別子の型
実装されたすべてのインターフェース:
JpaRepository<T,ID>JpaSpecificationExecutor<T>JpaRepositoryConfigurationAwareJpaRepositoryImplementation<T,ID>CrudRepository<T,ID>ListCrudRepository<T,ID>ListPagingAndSortingRepository<T,ID>PagingAndSortingRepository<T,ID>QueryByExampleExecutor<T>Repository<T,ID>
既知の直属サブクラス
QuerydslJpaRepository

@Repository @Transactional(readOnly=true) public class SimpleJpaRepository<T,ID> extends ObjectSE implements JpaRepositoryImplementation<T,ID>
CrudRepository インターフェースのデフォルト実装。これにより、プレーンな EntityManager よりも洗練されたインターフェースが提供されます。
作成者:
Oliver Gierke, Eberhard Wolff, Thomas Darimont, Mark Paluch, Christoph Strobl, Stefan Fussenegger, Jens Schauder, David Madden, Moritz Becker, Sander Krabbenborg, Jesse Wouters, Greg Turnquist, Yanming Zhou, Ernst-Jan van der Laan, Diego Krupitza, Seol-JY, Joshua Chen
  • コンストラクターの詳細

    • SimpleJpaRepository

      public SimpleJpaRepository(JpaEntityInformation<T,?> entityInformation, jakarta.persistence.EntityManager entityManager)
      指定された JpaEntityInformation のオブジェクトを管理する新しい SimpleJpaRepository を作成します。
      パラメーター:
      entityInformation - null であってはなりません。
      entityManager - null であってはなりません。
    • SimpleJpaRepository

      public SimpleJpaRepository(ClassSE<T> domainClass, jakarta.persistence.EntityManager entityManager)
      指定されたドメイン型のオブジェクトを管理する新しい SimpleJpaRepository を作成します。
      パラメーター:
      domainClass - null であってはなりません。
      entityManager - null であってはなりません。
  • メソッドの詳細

    • setRepositoryMethodMetadata

      public void setRepositoryMethodMetadata(CrudMethodMetadata metadata)
      LockModeType を検出するために使用されるカスタム CrudMethodMetadata と、クエリに適用されるクエリヒントを構成します。
      次で指定:
      インターフェース JpaRepositoryConfigurationAwaresetRepositoryMethodMetadata 
      パラメーター:
      metadata -
    • setEscapeCharacter

      public void setEscapeCharacter(EscapeCharacter escapeCharacter)
      インターフェースからコピーされた説明: JpaRepositoryConfigurationAware
      リポジトリで使用する EscapeCharacter を構成します。
      次で指定:
      インターフェース JpaRepositoryConfigurationAwaresetEscapeCharacter 
      パラメーター:
      escapeCharacter - null であってはなりません。
    • setProjectionFactory

      public void setProjectionFactory(ProjectionFactory projectionFactory)
      インターフェースからコピーされた説明: JpaRepositoryConfigurationAware
      リポジトリで使用する ProjectionFactory を構成します。
      次で指定:
      インターフェース JpaRepositoryConfigurationAwaresetProjectionFactory 
      パラメーター:
      projectionFactory - null であってはなりません。
    • getRepositoryMethodMetadata

      @Nullable protected CrudMethodMetadata getRepositoryMethodMetadata()
    • getDomainClass

      protected ClassSE<T> getDomainClass()
    • deleteById

      @Transactional public void deleteById(ID id)
      次で指定:
      インターフェース CrudRepository<T,ID>deleteById 
    • delete

      @Transactional public void delete(T entity)
      次で指定:
      インターフェース CrudRepository<T,ID>delete 
    • deleteAllById

      @Transactional public void deleteAllById(IterableSE<? extends ID> ids)
      次で指定:
      インターフェース CrudRepository<T,ID>deleteAllById 
    • deleteAllByIdInBatch

      @Transactional public void deleteAllByIdInBatch(IterableSE<ID> ids)
      インターフェースからコピーされた説明: JpaRepository
      単一のクエリを使用して、指定された ID で識別されるエンティティを削除します。この種の操作では、JPA の第 1 レベルのキャッシュとデータベースが同期しなくなります。このメソッドを呼び出す前に、EntityManager をフラッシュすることを検討してください。
      次で指定:
      インターフェース JpaRepository<T,ID>deleteAllByIdInBatch 
      パラメーター:
      ids - 削除するエンティティの ID。null であってはなりません。
    • deleteAll

      @Transactional public void deleteAll(IterableSE<? extends T> entities)
      次で指定:
      インターフェース CrudRepository<T,ID>deleteAll 
    • deleteAllInBatch

      @Transactional public void deleteAllInBatch(IterableSE<T> entities)
      インターフェースからコピーされた説明: JpaRepository
      指定されたエンティティをバッチで削除します。これは、単一のクエリを作成することを意味します。この種の操作では、JPA の第 1 レベルのキャッシュとデータベースが同期しなくなります。このメソッドを呼び出す前に、EntityManager をフラッシュすることを検討してください。

      また、JPA のカスケードセマンティクスは尊重されず、JPA ライフサイクルイベントも発行されません。

      次で指定:
      インターフェース JpaRepository<T,ID>deleteAllInBatch 
      パラメーター:
      entities - 削除するエンティティ。null であってはなりません。
    • deleteAll

      @Transactional public void deleteAll()
      次で指定:
      インターフェース CrudRepository<T,ID>deleteAll 
    • deleteAllInBatch

      @Transactional public void deleteAllInBatch()
      インターフェースからコピーされた説明: JpaRepository
      バッチ呼び出しですべてのエンティティを削除します。
      次で指定:
      インターフェース JpaRepository<T,ID>deleteAllInBatch 
    • findById

      public OptionalSE<T> findById(ID id)
      次で指定:
      インターフェース CrudRepository<T,ID>findById 
    • getOne

      @DeprecatedSE public T getOne(ID id)
      使用すべきではありません。
      インターフェースからコピーされた説明: JpaRepository
      指定された識別子を持つエンティティへの参照を返します。JPA 永続性プロバイダーの実装方法によっては、これは常にインスタンスを返し、最初のアクセスで EntityNotFoundException をスローする可能性が非常に高くなります。それらのいくつかは、無効な識別子をすぐに拒否します。
      次で指定:
      インターフェース JpaRepository<T,ID>getOne 
      パラメーター:
      id - null であってはなりません。
      戻り値:
      指定された識別子を持つエンティティへの参照。
      関連事項:
      • for details on when an exception is thrown.
    • getById

      @DeprecatedSE public T getById(ID id)
      使用すべきではありません。
      インターフェースからコピーされた説明: JpaRepository
      指定された識別子を持つエンティティへの参照を返します。JPA 永続性プロバイダーの実装方法によっては、これは常にインスタンスを返し、最初のアクセスで EntityNotFoundException をスローする可能性が非常に高くなります。それらのいくつかは、無効な識別子をすぐに拒否します。
      次で指定:
      インターフェース JpaRepository<T,ID>getById 
      パラメーター:
      id - null であってはなりません。
      戻り値:
      指定された識別子を持つエンティティへの参照。
      関連事項:
      • for details on when an exception is thrown.
    • getReferenceById

      public T getReferenceById(ID id)
      インターフェースからコピーされた説明: JpaRepository
      指定された識別子を持つエンティティへの参照を返します。JPA 永続性プロバイダーの実装方法によっては、これは常にインスタンスを返し、最初のアクセスで EntityNotFoundException をスローする可能性が非常に高くなります。それらのいくつかは、無効な識別子をすぐに拒否します。
      次で指定:
      インターフェース JpaRepository<T,ID>getReferenceById 
      パラメーター:
      id - null であってはなりません。
      戻り値:
      指定された識別子を持つエンティティへの参照。
      関連事項:
      • for details on when an exception is thrown.
    • existsById

      public boolean existsById(ID id)
      次で指定:
      インターフェース CrudRepository<T,ID>existsById 
    • findAll

      public ListSE<T> findAll()
      次で指定:
      インターフェース CrudRepository<T,ID>findAll 
      次で指定:
      インターフェース ListCrudRepository<T,ID>findAll 
    • findAllById

      public ListSE<T> findAllById(IterableSE<ID> ids)
      次で指定:
      インターフェース CrudRepository<T,ID>findAllById 
      次で指定:
      インターフェース ListCrudRepository<T,ID>findAllById 
    • findAll

      public ListSE<T> findAll(Sort sort)
      次で指定:
      インターフェース ListPagingAndSortingRepository<T,ID>findAll 
      次で指定:
      インターフェース PagingAndSortingRepository<T,ID>findAll 
    • findAll

      public Page<T> findAll(Pageable pageable)
      次で指定:
      インターフェース PagingAndSortingRepository<T,ID>findAll 
    • findOne

      public OptionalSE<T> findOne(Specification<T> spec)
      インターフェースからコピーされた説明: JpaSpecificationExecutor
      指定された Specification または Optional.empty() に一致する単一のエンティティが見つからない場合、それを返します。
      次で指定:
      インターフェース JpaSpecificationExecutor<T>findOne 
      パラメーター:
      spec - null であってはなりません。
      戻り値:
      決して null にはなりません。
    • findAll

      public ListSE<T> findAll(Specification<T> spec)
      インターフェースからコピーされた説明: JpaSpecificationExecutor
      指定された Specification に一致するすべてのエンティティを返します。

      Specification が指定されていない場合は、<T> に一致するすべてのエンティティが選択されます。

      次で指定:
      インターフェース JpaSpecificationExecutor<T>findAll 
      パラメーター:
      spec - null でもかまいません。
      戻り値:
      決して null にはなりません。
    • findAll

      public Page<T> findAll(@Nullable Specification<T> spec, Pageable pageable)
      インターフェースからコピーされた説明: JpaSpecificationExecutor
      指定された Specification に一致するエンティティの Page を返します。

      Specification が指定されていない場合は、<T> に一致するすべてのエンティティが選択されます。

      次で指定:
      インターフェース JpaSpecificationExecutor<T>findAll 
      パラメーター:
      spec - null でもかまいません。
      pageable - null であってはなりません。
      戻り値:
      決して null にはなりません。
    • findAll

      public Page<T> findAll(@Nullable Specification<T> spec, @Nullable Specification<T> countSpec, Pageable pageable)
      インターフェースからコピーされた説明: JpaSpecificationExecutor
      指定された Specification に一致するエンティティの Page を返します。

      Specification に一致するエンティティの合計数のカウントをサポートします。

      次で指定:
      インターフェース JpaSpecificationExecutor<T>findAll 
      パラメーター:
      spec - null にすることができます。Specification が指定されていない場合は、<T> に一致するすべてのエンティティが選択されます。
      countSpec - null にすることができます。Specification が指定されていない場合は、<T> に一致するすべてのエンティティがカウントされます。
      pageable - null であってはなりません。
      戻り値:
      決して null にはなりません。
    • findAll

      public ListSE<T> findAll(@Nullable Specification<T> spec, Sort sort)
      インターフェースからコピーされた説明: JpaSpecificationExecutor
      指定された Specification および Sort に一致するすべてのエンティティを返します。

      Specification が指定されていない場合は、<T> に一致するすべてのエンティティが選択されます。

      次で指定:
      インターフェース JpaSpecificationExecutor<T>findAll 
      パラメーター:
      spec - null でもかまいません。
      sort - null であってはなりません。
      戻り値:
      決して null にはなりません。
    • exists

      public boolean exists(Specification<T> spec)
      インターフェースからコピーされた説明: JpaSpecificationExecutor
      データストアに、指定された Specification と一致する要素が含まれているかどうかを確認します。
      次で指定:
      インターフェース JpaSpecificationExecutor<T>exists 
      パラメーター:
      spec - 存在チェックに使用する Specification は null であってはなりません。
      戻り値:
      データストアに指定された Specification に一致する要素が含まれている場合は true、それ以外の場合は false
    • delete

      @Transactional public long delete(@Nullable Specification<T> spec)
      インターフェースからコピーされた説明: JpaSpecificationExecutor
      Specification によって削除し、削除された行数を返します。

      この方法では、データベース削除操作に直接マップされる Criteria API bulk delete を使用します。永続化コンテキストは一括削除の結果と同期されません。

      CriteriaBuilder.createCriteriaDelete(Class) は CriteriaQuery を実装していないため、CriteriaQuerySpecification.toPredicate(Root, CriteriaQuery, CriteriaBuilder) は null になることに注意してください。

      Specification が指定されていない場合は、<T> に一致するすべてのエンティティが削除されます。

      次で指定:
      インターフェース JpaSpecificationExecutor<T>delete 
      パラメーター:
      spec - 存在チェックに使用する Specification は null にできません。
      戻り値:
      削除されたエンティティの数。
    • findBy

      public <S extends T, R> R findBy(Specification<T> spec, FunctionSE<? super JpaSpecificationExecutor.SpecificationFluentQuery<S>,R> queryFunction)
      インターフェースからコピーされた説明: JpaSpecificationExecutor
      クエリとその結果の型を定義する queryFunction を適用して、指定された Specification に一致するエンティティを返します。

      queryFunction で使用されるクエリオブジェクトは、findBy(…) メソッド呼び出し内でのみ有効です。クエリが findBy(…) メソッド内で実行されるようにするには、クエリ関数が FluentQuery オブジェクト自体ではなくクエリ結果を返す必要があります。

      次で指定:
      インターフェース JpaSpecificationExecutor<T>findBy 
      パラメーター:
      spec - null であってはなりません。
      queryFunction - 射影、並べ替え、結果型を定義するクエリ関数
      戻り値:
      指定された仕様に一致するすべてのエンティティ。
    • findOne

      public <S extends T> OptionalSE<S> findOne(Example<S> example)
      次で指定:
      インターフェース QueryByExampleExecutor<T>findOne 
    • count

      public <S extends T> long count(Example<S> example)
      次で指定:
      インターフェース QueryByExampleExecutor<T>count 
    • exists

      public <S extends T> boolean exists(Example<S> example)
      次で指定:
      インターフェース QueryByExampleExecutor<T>exists 
    • findAll

      public <S extends T> ListSE<S> findAll(Example<S> example)
      次で指定:
      インターフェース JpaRepository<T,ID>findAll 
      次で指定:
      インターフェース QueryByExampleExecutor<T>findAll 
    • findAll

      public <S extends T> ListSE<S> findAll(Example<S> example, Sort sort)
      次で指定:
      インターフェース JpaRepository<T,ID>findAll 
      次で指定:
      インターフェース QueryByExampleExecutor<T>findAll 
    • findAll

      public <S extends T> Page<S> findAll(Example<S> example, Pageable pageable)
      次で指定:
      インターフェース QueryByExampleExecutor<T>findAll 
    • findBy

      public <S extends T, R> R findBy(Example<S> example, FunctionSE<FluentQuery.FetchableFluentQuery<S>,R> queryFunction)
      次で指定:
      インターフェース QueryByExampleExecutor<T>findBy 
    • count

      public long count()
      次で指定:
      インターフェース CrudRepository<T,ID>count 
    • count

      public long count(@Nullable Specification<T> spec)
      インターフェースからコピーされた説明: JpaSpecificationExecutor
      指定された Specification が返すインスタンスの数を返します。

      Specification が指定されていない場合は、<T> に一致するすべてのエンティティがカウントされます。

      次で指定:
      インターフェース JpaSpecificationExecutor<T>count 
      パラメーター:
      spec - インスタンスをカウントする Specification は null であってはなりません。
      戻り値:
      インスタンスの数。
    • save

      @Transactional public <S extends T> S save(S entity)
      次で指定:
      インターフェース CrudRepository<T,ID>save 
    • saveAndFlush

      @Transactional public <S extends T> S saveAndFlush(S entity)
      インターフェースからコピーされた説明: JpaRepository
      エンティティを保存し、変更を即座にフラッシュします。
      次で指定:
      インターフェース JpaRepository<T,ID>saveAndFlush 
      パラメーター:
      entity - 保存するエンティティ。null であってはなりません。
      戻り値:
      保存されたエンティティ
    • saveAll

      @Transactional public <S extends T> ListSE<S> saveAll(IterableSE<S> entities)
      次で指定:
      インターフェース CrudRepository<T,ID>saveAll 
      次で指定:
      インターフェース ListCrudRepository<T,ID>saveAll 
    • saveAllAndFlush

      @Transactional public <S extends T> ListSE<S> saveAllAndFlush(IterableSE<S> entities)
      インターフェースからコピーされた説明: JpaRepository
      すべてのエンティティを保存し、変更を即座にフラッシュします。
      次で指定:
      インターフェース JpaRepository<T,ID>saveAllAndFlush 
      パラメーター:
      entities - 保存するエンティティ。null であってはなりません。
      戻り値:
      保存されたエンティティ
    • flush

      @Transactional public void flush()
      インターフェースからコピーされた説明: JpaRepository
      データベースに対するすべての保留中の変更をフラッシュします。
      次で指定:
      インターフェース JpaRepository<T,ID>flush 
    • readPage

      @DeprecatedSE protected Page<T> readPage(jakarta.persistence.TypedQuery<T> query, Pageable pageable, @Nullable Specification<T> spec)
      使用すべきではありません。
      代わりに readPage(TypedQuery, Class, Pageable, Specification) を使用してください
      指定された Pageable および Specification を適用して、指定された TypedQuery を Page に読み取ります。
      パラメーター:
      query - null であってはなりません。
      spec - null でもかまいません。
      pageable - null であってはなりません。
    • readPage

      protected <S extends T> Page<S> readPage(jakarta.persistence.TypedQuery<S> query, ClassSE<S> domainClass, Pageable pageable, @Nullable Specification<S> spec)
      指定された Pageable および Specification を適用して、指定された TypedQuery を Page に読み取ります。
      パラメーター:
      query - null であってはなりません。
      domainClass - null であってはなりません。
      spec - null でもかまいません。
      pageable - null でもかまいません。
    • getQuery

      protected jakarta.persistence.TypedQuery<T> getQuery(@Nullable Specification<T> spec, Pageable pageable)
      指定された Specification から新しい TypedQuery を作成します。
      パラメーター:
      spec - null でもかまいません。
      pageable - null であってはなりません。
    • getQuery

      protected <S extends T> jakarta.persistence.TypedQuery<S> getQuery(@Nullable Specification<S> spec, ClassSE<S> domainClass, Pageable pageable)
      指定された Specification から新しい TypedQuery を作成します。
      パラメーター:
      spec - null でもかまいません。
      domainClass - null であってはなりません。
      pageable - null であってはなりません。
    • getQuery

      protected jakarta.persistence.TypedQuery<T> getQuery(@Nullable Specification<T> spec, Sort sort)
      指定された Specification および Sort の TypedQuery を作成します。
      パラメーター:
      spec - null でもかまいません。
      sort - null であってはなりません。
    • getQuery

      protected <S extends T> jakarta.persistence.TypedQuery<S> getQuery(@Nullable Specification<S> spec, ClassSE<S> domainClass, Sort sort)
      指定された Specification および Sort の TypedQuery を作成します。
      パラメーター:
      spec - null でもかまいません。
      domainClass - null であってはなりません。
      sort - null であってはなりません。
    • getCountQuery

      @DeprecatedSE protected jakarta.persistence.TypedQuery<LongSE> getCountQuery(@Nullable Specification<T> spec)
      使用すべきではありません。
      代わりに getCountQuery(Specification, Class) をオーバーライドします
      指定された Specification の新しいカウントクエリを作成します。
      パラメーター:
      spec - null でもかまいません。
    • getCountQuery

      protected <S extends T> jakarta.persistence.TypedQuery<LongSE> getCountQuery(@Nullable Specification<S> spec, ClassSE<S> domainClass)
      指定された Specification の新しいカウントクエリを作成します。
      パラメーター:
      spec - null でもかまいません。
      domainClass - null であってはなりません。
    • getQueryHints

      protected QueryHints getQueryHints()
      現在の CrudMethodMetadata および潜在的な EntityGraph 情報に基づくクエリヒントを含む QueryHints を返します。
    • getQueryHintsForCount

      protected QueryHints getQueryHintsForCount()
      カウントクエリの現在の CrudMethodMetadata に関するクエリヒントを含む QueryHints を返します。