我正在使用spring和hibernate。我有一個類(DTO)有很多字符串成員變量。我試圖爲這個類實現搜索。用戶應該能夠通過每個字段進行搜索。我使用jackson json mapper來序列化和反序列化對象。無論如何通過使用JsonProperty值來確定fieldName?通過將@JsonProperty值傳遞給對象映射器來識別屬性
讓這成爲一個例子:我的DTO
public class SampleDTO{
private String field1;
private String field2;
private String field3;
private String field4;
@JsonProperty("FIELD_1")
public String getField1(){
return field1;
}
@JsonProperty("FIELD_2")
public String getField2(){
return field2;
}
@JsonProperty("FIELD_3")
public String getField3(){
return field3;
}
@JsonProperty("FIELD_4")
public String getField4(){
return field4;
}
}
讓這成爲我的搜索功能
public Set<T> search(String fieldName, String searchKeyword) {
String originalFieldName = someMagicFunction(fieldName);
//if fieldName= "FIELD_1", someMagicFunction should return "field1"
Criteria criteria = session.createCriteria(T.class);
criteria.add(Restrictions.eq(originalFieldName, searchKeyword));
return new HashSet<T>(criteria.list());
}
的任何實施罰款。我正在尋找一種處理這種情況的好方法。感覺像手動查找字段涉及「太多打字」。
感謝您的意見。跟着回答http://stackoverflow.com/a/13514566/796400。 –