2017-08-10 3 views
0

Usring SDR。私はエンティティ、PersonRole、結合テーブルに基づいている。レポートの場合、私は、テーブルの2つの異なる列の間に最小の日付をジョインテーブルで結合します。彼女はいくつかの擬似コードであるので、私は春データ休みHateos返品余分な列

今、私は唯一のDTOデータを得ることについて気にしたときの私のエンティティと一緒に余分なデータを取得するためのDTOを使用しました
select 
pr, 
if pr.dateOne < pr.dateTwo then pr.dateOne else pr.dateTwo end as minDate 
from 
PersonRole pr 
... 

なしHATEOAS関連データ...イントラネット上で動作します。基本的に私はこのような何かをしたい

...

personRole : [ { 
person : { 
    dateOne: blah 
}, 
role : { 
    dateTwo: blah 
}, 
minDate: this is a min of person.dateOne and role.dateTwo 
}] 

答えて

0

あなたがMinDateプロパティを計算するであろう、あなたのエンティティに新しいメソッドを追加することができ、例えば:

@JsonProperty 
public Date getMinDate() { 
    if (dateOne < dateTwo) 
     return dateOne; 
    else 
     return dateTwo; 
} 

春データRESTが選択されますこのメソッドをアップしてエンティティと一緒にシリアル化します。

0

私は少し遅れているかもしれませんが、この種の機能は、投影法と@Valueアノテーションで実現できます。プロジェクションを次のように定義すると、次のようになります。

@Projection(name="report",types={PersonRole.class}) 
public interface PersonRoleProjection{ 

    @Value("target.dateOne < target.dateTwo ? target.dateOne : target.dateTwo") 
    Date getMinDate() 

    .... Define other getters here... 
} 
関連する問題