使用RSQL實現端到端的動態查詢

2021-09-11 12:19:13 字數 1209 閱讀 6524

本文主要研究一下如何使用rsql實現從前端到後端的動態資料查詢。

rsql(restful service query language)是feed item query language (fiql) 的超集,是一種restful服務的查詢語言。這裡我們使用rsql-jpa來實踐,它依賴rsql-parser來解析rsql語法,然後將解析後的rsql轉義到jpa的specification。

com.github.tennaito

rsql-jpa

2.0.2

複製**

它依賴了rsql-parser

@entity

public class todotask

複製**

@restcontroller

public class rsqlcontroller

}複製**

@component

public class todotaskservice

}複製**

這裡直接使用entitymanager來查詢,總共分三步,1是建立rsqlvisitor,2是解析condition到node,3是根據node建立criteriaquery,然後就可以根據criteriaquery來查詢了。

複製**

其中%3e是》的url轉義,如果有多個and條件,用;分隔

rsql是一種強大抽象的語言,可以用來做rest服務的通用查詢語言,spring-data-rest也提供了類似的功能,功能更為強大。不過這種貌似不支援or查詢,另外資料量大的時候,直接走db查詢可能造成慢查詢,因為並不是所有欄位都有索引,不過對於走elasticsearch來說,還是比較合適的。

nodejs實現端到端加密

端到端加密的實現主要依據兩個主要演算法 1.diffie hellman金鑰交換演算法 上文提到過 2.aes cbc 對稱加密演算法 主要流程如下 兩台裝置各生成一對diffie hellman公私鑰。在網路上交換公鑰。兩台裝置根據自己的私鑰和對方的公鑰,生成乙個新的 相同的金鑰。利用這個金鑰,兩...

nodejs實現端到端加密

本文引用 端到端加密的實現主要依據兩個主要演算法 1.diffie hellman金鑰交換演算法 上文提到過 2.aes cbc 對稱加密演算法 主要流程如下 兩台裝置各生成一對diffie hellman公私鑰。在網路上交換公鑰。兩台裝置根據自己的私鑰和對方的公鑰,生成乙個新的 相同的金鑰。利用這...

2 10 是否要使用端到端的深度學習?

假設你正在搭建乙個機器學習系統,你要決定是否使用端對端方法,我們來看看端到端深度學習的一些優缺點,這樣你就可以根據一些準則,判斷你的應用程式是否有希望使用端到端方法。優點 端到端深度學習的第二個好處就是這樣,所需手工設計的元件更少,所以這也許能夠簡化你的設計工作流程,你不需要花太多時間去手工設計功能...