2016-04-24 11 views
0

私はSpring、JPAの新機能で、一般的にWebアプリケーションを作成しています。私は会場での出席状況を追跡するシステムを作成しようとしています。私はカメラモジュールにリンクされたラズベリーパイにコンピュータビジョンアルゴリズムを実装することでこれを実現します。人/人が建物に入ると、それらはPiによって認識されるので、タイムスタンプと入力/放置した人の数がサーバに発砲されます。タイムスタンプエンティティに関連するフィールドは次のとおりです。春の別の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;私は、その瞬間に入ったタイムスタンプと人数を持っています。毎日の総人数を自動的に計算して保存するにはどうすればよいですか?ありがとうございました!

+0

論理層の要件に合わせてモデルを変更しないでください。タイムスタンプに一定の瞬間があり、多くの人が入り、他人が離れると、エンティティはそれを正確に反映する必要があります。 1日あたりの金額を計算するには、SQLクエリを作成するか、1つの具体的な日に関連するすべてのタイムスタンプを読み込んで計算します。 –

答えて

0

あなたのモデルは問題ありません。タイムスタンプごとに入力した人数を合計することをためらってください。 1日に入力した最大人数を取得するには、SQLを作成して、同じ日の最初と最後のタイムスタンプの間に入力した最大人数を取得します。サンプルフィルタ式は4月26日です。 = 2016-04-26 00:00:00 とタイムスタンプ< 2016-04-27 00:00:00

またはその趣旨のあらゆる方法。これは、あなたの希望する結果を論理的に検索する方法のアイデアです。

関連する問題