Srring Data JPA ----springboot
2412 ワード
JPA:Java Persistence API O/Rマッピングの標準仕様に基づく.
O/Rマッピング:Object-Realational Mappingクラスとデータベース内のテーブルをマッピングし、プログラムでオブジェクトを操作し、さらにデータベーステーブルを操作する
標準規範:標準規則を定義し、実現を提供しない.使用者は規範に定義された方法で使用するだけで、メーカーは実現を担当する.
jpaを使用してデータベース・アクセス・レイヤを作成するには、次のようにJpaRepositoryインタフェースを継承するインタフェースを定義します.
jpaキーワード:リンクhttps://www.cnblogs.com/BenWong/p/3890012.html
キーワードを使用して結果の数を制限できます.キーワードtop,first:findFirst 10 ByName
@Queryクエリの使用
方法1:パラメータインデックスの使用
方法2:名前付きパラメータの使用
クエリーの更新:@Modifyingと@Query注釈の組み合わせによるイベント更新クエリー
JPAダイナミッククエリー
JPAは、Criteria(標準、ガイドライン)に基づいてクエリーを行う方法を提供します.Spring Data JPAは、クエリー条件を構築するために使用されるSpecificationインタフェース構築準則クエリーを提供します.Specificationインタフェース定義toPredicateメソッドは、JpaSpecificationExecutorインタフェースを実装する必要があります.
Criterialクエリーの定義
次にfindAll(userByAge()を使用します.
並べ替えと改ページ
sortクラスとPageインタフェース、Pageableインタフェース
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));