🌳 에러 코드
org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors Field error in object 'weatherHistory' on field 'date': rejected value [2023-04-19]; codes [typeMismatch.weatherHistory.date,typeMismatch.date,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [weatherHistory.date,date]; arguments []; default message [date]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'date'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.util.Date] for value '2023-04-19'; nested exception is java.lang.IllegalArgumentException]
🌳 해결 방법
🌾 원인 : DB - date 타입이고, view - String 타입으로 요청이 되기 때문에 변환하는 과정에서 충돌.
🌾 해결 방법 : model에서 저장할 때, 필드를 String 타입으로 변환. DB에서는 내부적으로, 저장할때 String 타입 -> Date 타입으로 변환된다. view로 보여줄 때는, model - 필드가 String이기 때문에 String으로 보여진다.
* 정리 *
String(view) -> date(DB) -> date (select) // DB에서는 date이지만, 저장할때 String 타입으로 하면, DB에서 date객체로 저장됨.
- <전>
- <후>
'코딩 에러 및 질문' 카테고리의 다른 글
에러 - java.sql.SQLSyntaxErrorException (0) | 2023.04.07 |
---|---|
에러 - ClassNotFoundException (0) | 2023.04.07 |
에러 -nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 14 (0) | 2023.03.31 |
에러 - model.addAttribute() 값이 넘어오지 않고 null. (0) | 2023.03.28 |
에러 - Failed to parse the expression [${}] (0) | 2023.03.27 |