Srring Data JPA ----springboot

2412 ワード

JPA:Java Persistence API O/Rマッピングの標準仕様に基づく.
O/Rマッピング:Object-Realational Mappingクラスとデータベース内のテーブルをマッピングし、プログラムでオブジェクトを操作し、さらにデータベーステーブルを操作する
標準規範:標準規則を定義し、実現を提供しない.使用者は規範に定義された方法で使用するだけで、メーカーは実現を担当する.
jpaを使用してデータベース・アクセス・レイヤを作成するには、次のようにJpaRepositoryインタフェースを継承するインタフェースを定義します.
public interface UserRepository extends JpaRepository {
    //    
}

jpaキーワード:リンクhttps://www.cnblogs.com/BenWong/p/3890012.html
キーワードを使用して結果の数を制限できます.キーワードtop,first:findFirst 10 ByName
@Queryクエリの使用
方法1:パラメータインデックスの使用
@Query(value = "select * from user where name=?1")
    List getUserByName(String name);

方法2:名前付きパラメータの使用
@Query(value = "select * from user where name= :name",nativeQuery = true)
    List getUserByName(@Param("name") String name);

クエリーの更新:@Modifyingと@Query注釈の組み合わせによるイベント更新クエリー
@Modifying
    @Query(value = "update user set name=?1")
    int setName(String name);

JPAダイナミッククエリー
JPAは、Criteria(標準、ガイドライン)に基づいてクエリーを行う方法を提供します.Spring Data JPAは、クエリー条件を構築するために使用されるSpecificationインタフェース構築準則クエリーを提供します.Specificationインタフェース定義toPredicateメソッドは、JpaSpecificationExecutorインタフェースを実装する必要があります.
public interface UserRepository extends JpaRepository,JpaSpecificationExecutor{

Criterialクエリーの定義
public class CustomerSpecs {

    public static Specification userByAge(){
        return new Specification() {
            @Nullable
            @Override
            public Predicate toPredicate(Root root, CriteriaQuery> criteriaQuery, CriteriaBuilder criteriaBuilder) {
                return criteriaBuilder.equal(root.get("AGE"),18);
            }
        };
    }

}

次にfindAll(userByAge()を使用します.
並べ替えと改ページ
sortクラスとPageインタフェース、Pageableインタフェース
List findByName(String name, Sort sort);

List findByName(String name, Pageable pageable);
userRepository.findByName("  ",new Sort(Sort.Direction.ASC,"AGE"));
userRepository.findByName("  ",new PageRequest(0,10));