Springdata JPA-照会方法,JUnit test


Spring data jpaとは?


スプリングフレームワークでJPAをサポートする項目

  • CRUD処理用の汎用インタフェースの提供

  • Spring Data JPAは、repositoryの開発時にインタフェースを作成すると、実行時に実装オブジェクトを動的に作成して注入します.

  • データ・アクセス・レイヤの開発では、インタフェースを作成するだけで開発が完了し、クラスを実装する必要はありません.

  • 一般的な方法はSpring Data JPAから提供されるorgです.springframework.date.jpa.repository.Jpa Repositoryインタフェース
    count, delete, deleteAll, deleteAll, deleteById, existsById, findById, save ..
  • ->つまり、JpaRepositoryを拡張してインタフェースを作成する限り、findById、deleteById、deleteAll...これは、同じ方法を使用できることを意味します.クエリー・メソッドをクエリー・メソッドと呼びます.次に例を挙げます.

    クエリー方法


    クエリー方法
    文書:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods
    Spring data jpa jpa jpa Repositoryインタフェースのメソッド名をチェックし、対応するjpqlを生成して実行します.

    ご覧のように、Jpa Repositoryを拡張しても実装されていません.発表される方法は一つしかない.
    Testコードを使用して、クエリー・メソッドが本当に機能しているかどうかを見てみましょう.
    @SpringBootTest
    class ArticleRepositoryTest {
    
        @Autowired
        private ArticleRepository articleRepository;
    
        @Test
        void saveArticleTest(){
            String testTitle="repository save test title";
            Article testArticle=Article.builder().title(testTitle).contents("repository article save testing...").contentsMd("repository article save testing...")
                                                 .contentsHtml("<p>repository article save testing...</p>").build();
            Article savedArticle= articleRepository.save(testArticle);
    
            assertEquals(testArticle.getTitle(),savedArticle.getTitle());
        }
    }
    assertEquals()の2つの面パラメータ「エラーが必要」を使用している場合は、次のテストに合格できません.

    上記のようにテストコードが正常に記述されている場合は、saveが定義されていなくても、クエリーメソッドがhibernateによってqueryが正常に発行されているかどうかを確認するテストを行うことができます.

    REFERENCE:
    https://data-make.tistory.com/621 [Data Makes Our Future]
    https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods