1. 程式人生 > >JPA 動態查詢

JPA 動態查詢

  • JPA Repository 繼承JpaSpecificationExecutor
public interface VwUserEstateRepository extends CrudRepository<VwUserEstate, Integer> , JpaSpecificationExecutor<VwUserEstate> {
  • 寫個方法處理動態查詢
protected static Specification<VwUserEstate> queryNotSendByTerms(Integer projectId, Integer materialCodeId, Integer batchId, Integer estateTypeId, Integer estateSubTypeId, List<Integer> estateIds, Integer uid) {
        return new Specification<VwUserEstate>() {
            public Predicate toPredicate(Root<VwUserEstate> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
                Predicate predicate = builder.conjunction
(); if (projectId != null) { predicate.getExpressions().add(builder.equal(root.get(VwUserEstate_.projectId), projectId)); } if (materialCodeId != null) { predicate.getExpressions().add(builder.equal(root.get(VwUserEstate_.materialCodeId
), materialCodeId)); } if (batchId != null) { predicate.getExpressions().add(builder.equal(root.get(VwUserEstate_.batchId), batchId)); } if (estateTypeId != null) { predicate.getExpressions().add
(builder.equal(root.get(VwUserEstate_.estateTypeId), estateTypeId)); } if (estateSubTypeId != null) { predicate.getExpressions().add(builder.equal(root.get(VwUserEstate_.estateSubTypeId), estateSubTypeId)); } Iterator iterator = estateIds.iterator(); In in = builder.in(root.get(VwUserEstate_.id)); while (iterator.hasNext()) { in.value(iterator.next()); } predicate.getExpressions().add(builder.not(in)); predicate.getExpressions().add(builder.equal(root.get(VwUserEstate_.uid), uid)); return predicate; } }; }
  • 呼叫動態查詢
            Page<VwUserEstate> list = vwUserEstateRepository.findAll(where(queryNotSendByTerms(projectId, materialCodeId, batchId, estateTypeId, estateSubTypeId, estateIds, uid)), page);

相關推薦

Spring Data JPA動態查詢(多條件and)

ica cat 滿足 from pos true ans let tid entity: @Entity @Table(name = "data_illustration") public class Test { @Id @Gen

spring-data-jpa動態查詢

靜態查詢      extends JpaRepository<Stu,Integer> 動態查詢      extends JpaSpecificationExecutor<Stu> @Repository

spring jpa 動態查詢(Specification)

//dao層 繼承 擴充套件倉庫介面JpaSpecificationExecutor (JPA 2引入了一個標準的API)public interface CreditsEventDao extends JpaRepository<CreditsEventBean, Integer>,

Jpa動態查詢常用方法

使用Spring data JPA開發已經有一段時間了,這期間學習了一些東西,也遇到了一些問題,在這裡和大家分享一下。 前言: Spring data簡介: Spring Data是一個用於簡化資料庫訪問,並支援雲服務的開源框架。其主要目標是使得對資料的訪問變得方便快捷,並支援map-reduce框架和雲端

JPA 動態查詢

JPA Repository 繼承JpaSpecificationExecutor public interface VwUserEstateRepository extends CrudRepo

打包JPA動態查詢(CriteriaQuery) eq、ge、gt

封裝JPA動態查詢(CriteriaQuery) JPA動態查詢(CriteriaQuery)封裝的一段程式碼: package com.platform.framework.dao.jpa; import java.io.Serializable; import jav

SpringBoot中使用Spring Data Jpa 實現簡單的動態查詢的兩種方法

ppr eat value table 得到 blog .net ride integer 首先謝謝大佬的簡書文章:http://www.jianshu.com/p/45ad65690e33# 這篇文章中講的是spring中使用spring data jpa,使用了xml配

基於Spring Boot,使用JPA動態調用Sql查詢數據

註解 查詢 ldr http autowired dal -c osi 動態 在《基於Spring Boot,使用JPA操作Sql Server數據庫完成CRUD》,《基於Spring Boot,使用JPA調用Sql Server數據庫的存儲過程並返回記錄集合》完成了CRU

spring-data-jpa動態拼接sql語句實現動態的多表條件查詢

** spring-data-jpa 動態拼接sql語句 ** spring-data-jpa對於簡單的資料操作確實使用起來比較方便,但是對於一些比較複雜的動態的多表條件查詢就不是那麼簡單了,對於需要些sql語句並且需要動態的新增條件的時候就得使用jpa的EntityManager來

SpringData jpa 實現多條件動態查詢,分頁功能

問題由來: 剛開始使用springdata的時候,只會用findByName這樣的簡單查詢,這樣寫dao層確實非常的快,但是在我們做篩選功能的時候,這樣的查詢似乎很難滿足我們的需求,但是都已經用上的springdata又不想再去寫mybatis這樣在xml裡面判

spring jpa動態條件查詢並分頁

@GetMapping("/api/listPage") @ResponseBody public Map<String, Object> listPage(@RequestParam(value = "pageNumber", defaultV

Spring data JPA使用Specification實現動態查詢例子

實體類 package com.net263.domain; import java.math.BigDecimal; import java.util.Date; import javax.persistence.Column; import jav

Spring Data JPA動態查詢

在日常工作中,Spring Data JPA的使用給我們帶來了極大的方便,但是實際業務中很多場景需要支援動態查詢。比如前端查詢功能提供了很多查詢條件,使用者可以根據一部分條件進行查詢,那麼後端就需要支援可配置的查詢服務。在使用mybatis等時,可以用動態查詢的方式輕鬆搞定,

springdata jpa使用Example快速實現動態查詢

Example官方介紹 Query by Example (QBE) is a user-friendly querying technique with a simple interface. It allows dynamic query creation

Spring-Data-JPA中使用Specification實現動態查詢

      最近專案技術選型db框架選擇了使用JPA,剛開始時,使用jpa進行一些單表簡單的查詢非常輕鬆,大家寫的不亦樂乎,後來在遇到多條件動態查詢的業務場景時,發現現有的JpaRepository提供的方法和自己寫@Query已經滿足了不了需求,難不成要對所有的條件和欄位進

springboot結合spring-data-jpa動態查詢

Criteria API 這套API可用於構建對資料庫的查詢。型別安全。通過定義元資料模型,在程式編譯階段就可以對型別進行檢查,不像SQL需要與Mysql進行互動後才能發現型別問題。 如下即為元資料模型。建立一個元模型類,類名最後一個字元為下劃線,內部的成員變數與Girl.

JPA學習(五):java持久化查詢語言JPQL--動態查詢的使用及語法限制

JPQL動態查詢(模糊查詢)中 萬用字元 與 動態變數 聯合使用 的限制: JPQL動態查詢 引數不存在問題解決: 錯誤使用方式=>形如如下程式碼: 1/2: public It

Spring data jpa 複雜動態查詢方式總結

一.Spring data jpa 簡介 首先我並不推薦使用jpa作為ORM框架,畢竟對於負責查詢的時候還是不太靈活,還是建議使用mybatis,自己寫sql比較好.但是如果公司用這個就沒辦法了,可以學習一下,對於簡單查詢還是非常好用的.     首先JPA是Java

Linq To Sql進階系列(六)用object的動態查詢與保存log篇

directory ont 簡單 lambda表達式 bind add dbo 所有 生成 動態的生成sql語句,根據不同的條件構造不同的where字句,是拼接sql 字符串的好處。而Linq的推出,是為了彌補編程中的 Data != Object 的問題。我們又該如何實現

thinkphp 區間查詢 組合查詢 復合查詢 動態查詢 SQL查詢

thinkphp 查詢操作區間查詢 默認使用AND 在最後面元素加上OR SELECT * FROM `weibo_user` WHERE ( `id` > 1 OR `id` < 3 ) $map[‘id‘]=array( array(‘gt‘,1), array(‘lt‘,3),