1. 程式人生 > >spring data jpa 操作pipelinedb 的continuous view 與stream

spring data jpa 操作pipelinedb 的continuous view 與stream

   一、 由於pipelinedb是postgreSQL的擴充套件,因此相關依賴於配置都合整合postgreSQL是一樣的。

  springboot + spring data jpa + postgreSQL整合: https://www.cnblogs.com/zhaohuaxishi/p/10120593.html  

  

 二、pipelinedb + spring data jpa 整合時出現的問題及解決方案

    

後通過spring data jpa 操作 pipelinedb,來統計每日的線上時長.     問題1: spring data jpa 是使用原生sql語句傳送資料到 pipeline的stream中,然後pipelinedb 的continuous view 自動處理stream中資料,但是由於continous view是檢視資料,沒有主鍵id,因此無法使用spring data jpa的自動型別對映來查詢 continuous view中的資料.     思路1: 給 continuous view 建立id,以便能和實體類對映,然後進行查詢.     思路2:通過原生sql語句去查詢 需要的資料       最終解決方案 (驗證通過):         思路1+思路2同時存在.     方案解析:             由於spring data jpa 是使用的hibernate來對映和控制持久化模型,因此,如果需要將 continuous view的資料轉換為實體類模型,需要滿足hibernate的要求—主鍵id存在。但是由於continuous view中的資料是從stream或其他table中得來的,因此id也必須從其他stream或table拿取,所以只需給stream中設定id屬性或table中設定id屬性即可。             但是,由於stream的特點,因此在table中設定id屬性最為方便和簡潔。     table的屬性欄位內容:   
  stream的屬性欄位內容:      Continuous view的建立語句:     

    

  查詢continuous view 資料時使用的原生sql語句:

      

 

 查詢結果:成功