2016-08-22 3 views
2

Я немного смущен, когда мне нужно использовать объект mapper. Я думал, что она должна быть использована для отображения результирующего набора из запроса БД в объекты таким образом, я создал объект картографа вроде этого:Jersey and Object Mapper

public class PersonMapper implements ResultSetMapper<Person> 
{ 
    public Person map(int index, ResultSet resultSet, StatementContext ctx) throws SQLException 
    { 
     Person person = new Person(); 
     person.setPersonId(resultSet.getShort("PersonId")); 
     person.setPersonType((PersonType) resultSet.getObject("PersonType")); 
     person.setPersonName(resultSet.getString("PersonName")); 
     person.setPersonMobile(resultSet.getString("PersonMobile")); 
     return person; 
    } 
} 

Тогда я зарегистрировал его с конкретным DAO, как это: @RegisterMapper(PersonMapper.class)

Однако , похоже, что все работает без преобразователя, даже если я делаю такой запрос: List<Person> list = list(namedQuery("Person.findAll"));, который возвращает правильный список.

Итак, когда нужно использовать картограф?

ответ

0

Если вы говорите об объекте ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper), то мы используем его для сохранения целого объекта POJO в виде строки JSON в базу данных, в которой вам необходимо сохранить тип данных столбец в формате JSON при создании таблицы ...

поэтому мы используем его как этот

public Response saveStateRules(@Context HttpServletRequest request,StatePojo statePojo) 
    { 
     ObjectMapper mapper = new ObjectMapper(); 
     String json = mapper.writeValueAsString(statePojo); 

     State state = new State(); 

     state.setRulejson(json); 
} 

где,

public class StatePojo implements Serializable{ 

    private Integer stateid; 
    private ArrayList<StateRuleCondition> fieldconditions; 
    private ArrayList<Integer> stateids; 

    private Boolean isallow; 

// contains all getters and setters 

} 
+0

результат setmapper определяется в org.skife.jdbi.v2.tweak. ResultSetM apper –

+0

btw, что Джерси использует по умолчанию для обработки Json? Я не определил что-то конкретное –

+0

Могу ли я знать, где вы хотите обработать json? я имею в виду любое условие, в котором требуется обработка –