2012-10-02 65 views
2

我有一個控制器,它使用Spring自動將HTTP請求參數映射到業務域對象。我將域對象中的字段數據保存到數據庫中。Java - Spring - 搜索域對象

我有另一個控制器,需要支持搜索與域對象相關的字段的任何組合。對於某些字段(例如日期字段),我需要允許在一個範圍內搜索。所以,我不能重複使用域對象,因爲它只有一個日期字段。

例如,我有一個帶有日期字段的報告域對象。但是,搜索需要「來自」報告日期字段和「到」報告日期字段。

我應該創建只是在尋找,這主要是反映業務域對象(除了支持範圍搜索字段)一組域對象的?或者有更好的方法來做到這一點?

在此先感謝您的幫助。

回答

0

如何在範圍內添加兩個字段而不是創建新對象?
就像在報告域對象中添加兩個新字段fromReportDatetoReportDate一樣。

0

您能否考慮引入一個類似於Criteria的對象?

我不會創建基於你目前有,只是因爲你沒有造型的實體多個業務對象 - 你建模來找到他們的搜索條件。

例如,你可以做到以下幾點:

CriteriaBuilder<Report> builder = new CriteriaBuilder<Report>(); 
builder.addFrom("date", new Date()) 
builder.addTo("date", new Date()); 
Criteria<Report> criteria = builder.build(); 

CriteriaBuilder可反射性地檢查類屬性,以確保你不會試圖準則對綁定的缺席現場。