2016-04-03 7 views
0

私はRESTfulサービスを持っています。これは、開始日と終了日の2つのパラメータを取ります。@QueryParamは常にnullを表示します

@RequestParamアノテーションを使用すると、私は必要なものを得ることができます。しかし、@QueryParamを使用すると、渡されても常にnullとして表示されることに気付きました。ここで

は私のリソースです。そして、ここ

@RequestMapping(value = "/usage-query", method = RequestMethod.GET) 
@ApiOperation(value = "Available Sessions - JSON Body", notes = "GET method for unique users") 
public List<DTO> getUsageByDate(@QueryParam("start-date") final String startDate, 
     @QueryParam("end-date") String endDate) 
     throws BadParameterException { 
    return aaaService.findUsageByDate2(startDate, endDate); 

} 

は私のサービスです。ここに続いて

List<DTO> findUsageByDate(String startDate, String endDate) throws BadParameterException; 

は私のサービスの実装である:ここで

public List<DTO> findUsageByDate(String startDate, String endDate) throws BadParameterException { 
    return aaaDao.getUsageByDate(startDate, endDate); 

} 

は私のDAOです:

List<DTO> getUsageByDate(String startDate, String endDate) throws BadParameterException; 
ここで

は私のDAOの実装です:

@Override 
public List<DTO> getUsageByDate(String startDate, String endDate) throws BadParameterException { 
    StringBuilder sql = new StringBuilder(
      "select * from usage where process_time >= :start_date"); 

    if(endDate!= null) 
    { 
     sql.append(" and process_time < :end_date"); 
    } 


    sql.append(" limit 10"); 
    System.out.println(sql.toString()); 
    SqlParameterSource namedParameters = new MapSqlParameterSource().addValue("start_date", startDate) 
      .addValue("end_date", endDate); 
    try { 
     return jdbcTemplate.query(sql.toString(), namedParameters, 
       new BeanPropertyRowMapper<DTO>(AAAUsageDTO.class)); 

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

任意の助けいただければ幸いです。おそらく何か明白です

+0

requestparamとquery paramの両方に対して呼び出すサービスエンドポイントは何ですか? – Sanj

+0

残念ですが、私はコードを入れて、必要なビットを逃しました:-)これはGET/v1/usage/usage-query?start-date = 2016-01-01; end-date = 2016-03- 01 HTTP/1.1 – Xathras

+0

開始日と終了日の間にアンパサンド&がありますか? – Sanj

答えて

2

私が@RequestParam注釈を使用すると、私は必要なものを手に入れます。しかし、私が@QueryParamを使用した場合、渡されても常にnullとして表示されることに気付きました。

あなたは@QueryParamがためであるJAX-RS、へ一切は関係ありませんSpring MVCのを、使用しているため。スプリングは@RequestParamを使用しています。 Springを使用する場合は、JAX-RS依存関係を取り除くことをお勧めします。そうすれば、使用できることと使用できないことを混同することはありません。

+0

ありがとう – Xathras

関連する問題