2016-04-06 9 views
2

Ich bin mit etwas fest und brauche etwas Hilfe. Insbesondere habe ich ein POJO wie folgt definiert:Frühling MVC Return in Snake Case

private String uid; 
private String userName; 
private String firstName; 
private String lastName; 

Mein DAO sieht ungefähr so ​​aus:

@Override 
public AAAUserCountDTO getUserCount(final String userName, final Date startDate, final Date endDate) 
     throws BadParameterException { 
    final String sql = "select uid, user_name, first_name, last_name from usage where user_name = :user_name and process_time >= :start_date and process_time < :end_date"; 

    final SqlParameterSource namedParameters = new MapSqlParameterSource().addValue("user_name", userName) 
      .addValue("start_date", startDate).addValue("end_date", endDate); 

    try { 
     return jdbcTemplate.queryForObject(sql, namedParameters, 
       new BeanPropertyRowMapper<DTO>(DTO.class).se); 

    } catch (EmptyResultDataAccessException e) { 
     throw new BadParameterException(); 
    } 
} 

Ich habe auch diesen Satz in meiner Anwendung yml Datei:

spring: 
    application: 
     name: Usage Service 
    jackson: 
     property-naming-strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES 

Meine Antwort sieht aus wie:

uid: 1234, 
userName: "Bob", 
firstName: "Bob", 
lastName: "Hopkins", 
etc... 

Wie kann ich erzwingen, ohne jedes in der JSON-Objekt-Notation als Teil der POJO

Dank

Antwort

1

Diese Codezeile zu sagen, die hilft:

@Override 
public void onApplicationEvent(ObjectMapperConfigured event) { 
    event.getObjectMapper().setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);   
} 
Verwandte Themen