Class CriteriaQueryBuilder<V,T>
java.lang.Object
io.leandev.appfuse.jpa.CriteriaQueryBuilder<V,T>
- Type Parameters:
V- 查詢結果的類型T- 實體的類型
JPA Criteria 查詢建構器
提供流暢的 API 來建立 JPA Criteria 查詢。
-
Constructor Summary
ConstructorsConstructorDescriptionCriteriaQueryBuilder(jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder) 建立查詢建構器(延遲指定結果類型)CriteriaQueryBuilder(jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, Class<V> valueType) 建立查詢建構器CriteriaQueryBuilder(jakarta.persistence.EntityManager entityManager) 建立查詢建構器(延遲指定結果類型)CriteriaQueryBuilder(jakarta.persistence.EntityManager entityManager, Class<V> valueType) 建立查詢建構器 -
Method Summary
Modifier and TypeMethodDescriptionjakarta.persistence.criteria.CriteriaQuery<V> build()建構 CriteriaQueryjakarta.persistence.criteria.CriteriaQuery<Long> 建構 count query,使用與 data query 相同的 filter。count()設定為計數查詢distinct()設定 DISTINCT 查詢設定查詢的來源實體設定查詢的來源實體(含別名)加入 INNER JOIN 關聯加入關聯加入關聯加入 INNER JOIN 關聯static <V,T> CriteriaQueryBuilder <V, T> of(jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder) 建立查詢建構器(延遲指定結果類型)static <V,T> CriteriaQueryBuilder <V, T> 建立查詢建構器static <V,T> CriteriaQueryBuilder <V, T> of(jakarta.persistence.EntityManager entityManager) 建立查詢建構器(延遲指定結果類型)static <V,T> CriteriaQueryBuilder <V, T> 建立查詢建構器orderBy(org.springframework.data.domain.Sort sort) 設定排序設定查詢條件
-
Constructor Details
-
CriteriaQueryBuilder
-
CriteriaQueryBuilder
-
CriteriaQueryBuilder
public CriteriaQueryBuilder(jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder) 建立查詢建構器(延遲指定結果類型)- Parameters:
criteriaBuilder- JPA CriteriaBuilder
-
CriteriaQueryBuilder
public CriteriaQueryBuilder(jakarta.persistence.EntityManager entityManager) 建立查詢建構器(延遲指定結果類型)- Parameters:
entityManager- JPA EntityManager
-
-
Method Details
-
of
public static <V,T> CriteriaQueryBuilder<V,T> of(jakarta.persistence.EntityManager entityManager, Class<V> valueType) 建立查詢建構器- Type Parameters:
V- 查詢結果的類型T- 實體的類型- Parameters:
entityManager- JPA EntityManagervalueType- 查詢結果的類型- Returns:
- 查詢建構器實例
-
of
public static <V,T> CriteriaQueryBuilder<V,T> of(jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, Class<V> valueType) 建立查詢建構器- Type Parameters:
V- 查詢結果的類型T- 實體的類型- Parameters:
criteriaBuilder- JPA CriteriaBuildervalueType- 查詢結果的類型- Returns:
- 查詢建構器實例
-
of
建立查詢建構器(延遲指定結果類型)- Type Parameters:
V- 查詢結果的類型T- 實體的類型- Parameters:
entityManager- JPA EntityManager- Returns:
- 查詢建構器實例
-
of
public static <V,T> CriteriaQueryBuilder<V,T> of(jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder) 建立查詢建構器(延遲指定結果類型)- Type Parameters:
V- 查詢結果的類型T- 實體的類型- Parameters:
criteriaBuilder- JPA CriteriaBuilder- Returns:
- 查詢建構器實例
-
from
設定查詢的來源實體- Parameters:
entityType- 實體類型- Returns:
- 此建構器
-
from
-
join
public CriteriaQueryBuilder<V,T> join(String property, jakarta.persistence.criteria.JoinType joinType, String alias) 加入關聯- Parameters:
property- 關聯屬性名稱joinType- 關聯類型alias- 別名- Returns:
- 此建構器
-
join
public CriteriaQueryBuilder<V,T> join(String property, jakarta.persistence.criteria.JoinType joinType) 加入關聯- Parameters:
property- 關聯屬性名稱joinType- 關聯類型- Returns:
- 此建構器
-
join
加入 INNER JOIN 關聯- Parameters:
property- 關聯屬性名稱alias- 別名- Returns:
- 此建構器
-
join
加入 INNER JOIN 關聯- Parameters:
property- 關聯屬性名稱- Returns:
- 此建構器
-
distinct
-
orderBy
設定排序- Parameters:
sort- Spring Data Sort 物件- Returns:
- 此建構器
-
count
-
where
設定查詢條件- Parameters:
filter- 過濾條件- Returns:
- 此建構器
-
build
建構 CriteriaQuery- Returns:
- JPA CriteriaQuery
-
buildCountQuery
建構 count query,使用與 data query 相同的 filter。
此方法建立獨立的 CriteriaQuery,避免 Hibernate 6 的 TableGroup 問題。
- Returns:
- count query
-