2016-04-24 80 views
0

我是Spring,JPA和創建Web應用程序的新手,總體而言,我很困惑自己可能是一個簡單的問題。我正在努力創建一個跟蹤場地出席率的系統。我通過在樹莓派上實施計算機視覺算法來實現這一點,該算法與相機模塊相連。當一個人/人進入建築物時,他們被Pi識別,因此時間戳和剛剛進入/離開的人數被激發到服務器。以下是時間戳實體中涉及的字段。在Spring中單獨的JPA實體中計算和存儲總數

@Entity 
public class Timestamp { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Integer id; 

    private DateTime timestamp; 

    @ManyToOne 
    @JoinColumn(name = "venue_id") 
    private Venue venue; 

    public Timestamp() {} 

    public Timestamp(DateTime timestamp) { 
    this.timestamp = timestamp; 
    } 

    private Integer peopleIn; 

    private Integer peopleOut; 

目前爲止還不錯。我想使用highcharts庫來繪製信息,就像在這個例子中一樣http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/line-time-series/: 在x軸上我會有一個日期,而在y軸上,我會得到在這個門上走過的人的總數特定的一天。這是我的問題所在。爲了獲得每天的總人數,我必須將每個特定日期的所有peopleIn值相加,但是日期和總數是否應該存儲在單獨的JPA實體中?在Timestamp實體中使用totalPeople字段是沒有意義的,因爲我只想要每個單獨日的總數。 TLDR;我有時間戳和當時進入的人數,我如何讓Spring自動計算並存儲每天的總人數。謝謝!

+0

不要改變模型以適應您的邏輯層要求。如果一個時間戳涉及到一定數量的人進入和其他人離開的特定時刻,那麼該實體應該正確地反映這一點。然後,爲了計算每天的金額,編寫一個SQL查詢或只加載與一個具體日期相關的所有時間戳並計算它。 –

回答

0

你的模型很好,不要猶豫,添加在每個時間戳中輸入的總人數。 爲了獲得一天中輸入的最大人數,制定您的sql,以獲得在同一天的第一個和最後一個時間戳之間輸入的最大人數,樣本過濾器表達式適用於2016年4月26日,

timestamp> = 2016-04-26 00:00:00 和時間戳< 2016-04-27 00:00:00

或任何其他影響。這只是給你關於如何從邏輯上檢索你的wishf結果的想法。