Work

jpa

JPA
Java
Image 3

Java Persistence API (JPA)

Overview

JPA 是 Java 平台上的 ORM 標準,它使您能夠在 Java 層面上定義資料查詢方法,而無需編寫傳統的 CRUD 指令,同時利用命名規約自動產生 SQL 查詢。

Query Method Conventions

透過方法名稱,JPA 可自動生成相應的查詢。例如:

List<User> findByUsername(String username);

常用的命名關鍵字

  • findBy:開始查詢,後跟屬性名稱。
  • Between:指定範圍查詢。
  • And:連接多個查詢條件。
  • Like:模糊查詢。
  • GreaterThan:查詢大於指定數值。
  • OrderBy:排序查詢結果。

示例方法

// 根據年齡範圍查詢用戶
List<User> findByAgeBetween(int minAge, int maxAge);

// 根據用戶名稱和郵箱查詢用戶
List<User> findByUsernameAndEmail(String username, String email);

// 進行模糊查詢
List<User> findByUsernameLike(String username);

// 以年齡降序排序查詢大於指定年齡的用戶
List<User> findByAgeGreaterThanOrderByAgeDesc(int age);

JPA 方法的回傳類型

Optional

用來安全地處理可能為 null 的實體:

Optional<Bean> findById(Long id);

Set

確保返回集合中的元素唯一:

Set<Bean> findAllBeans();

Map

以唯一 id 作為 key 快速存取資料:

Map<Long, Bean> findAllBeansWithIdMapping();

Stream

利用 Java 8 的 Stream 進一步操作資料:

Stream<Bean> findAllBeansAsStream();

Stream 操作示例

  • 過濾
    Stream<Bean> beansStartingWithA = findAllBeansAsStream()
        .filter(bean -> bean.getName().startsWith("A"));
  • 映射
    Stream<String> beanNames = findAllBeansAsStream()
        .map(Bean::getName);
  • 排序
    Stream<Bean> sortedBeans = findAllBeansAsStream()
        .sorted(Comparator.comparing(Bean::getName));

TY的智慧庫

你有事?
問前想清楚,機會不是誰都有。

💡 建議主題:

放大圖片