Mysql
 sql >> база данни >  >> RDS >> Mysql

Заявката, изпратена от клиента, беше синтактично неправилна, използвайки @DateTimeFormat

Тъй като използвате RequestBody с application/json тип съдържание, Spring ще използва своя MappingJackson2HttpMessageConverter за да конвертирате вашия JSON в обект от вашия тип. Въпреки това низът за дата, който предоставяте, 11/14 не съвпада с нито един от предварително конфигурираните модели за дата и следователно не може да го анализира правилно. MappingJackson2HttpMessageConverter , или по-точно ObjectMapper който върши работата, не знае нищо за @DateTimeFormat , пролетна анотация.

Ще трябва да кажете на Джаксън кой модел на дата искате да използвате. Можете да направите това с персонализиран десериализатор на дата

public class CustomDateDeserializer extends JsonDeserializer<Date> {
    @Override
    public Date deserialize(JsonParser jp, DeserializationContext ctxt)
            throws IOException, JsonProcessingException {
        SimpleDateFormat format = new SimpleDateFormat("MM/yy");
        String date = jp.getText();

        try {
            return format.parse(date);
        } catch (ParseException e) {
            throw new JsonParseException(e);
        }
    }
}

След това просто анотирайте полето си, така че Джаксън да знае как да го десериализира.

@JsonDeserialize(using = CustomDateDeserializer.class)
private Date test;

Можете да използвате @DateTimeFormat ако сте използвали URL-кодирани параметри на формуляр с @ModelAttribute . Spring регистрира някои преобразуватели, които могат да преобразуват стойност на низ от параметри на заявка в Date обект. Това е описано в деокументация.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO + MySQL и счупено UTF-8 кодиране

  2. Възможно ли е да се използва клауза WHERE за избор на всички записи в SQL изявление?

  3. Изпразвайте MySQL таблица на час

  4. Как да актуализирате таблицата автоматично в MYSQL с помощта на TRIGGER

  5. Преобразувайте датата във формат MM/DD/YYYY в MySQL дата