2017-08-29 47 views
1

所以我在我的形式如何使用Java實體將引導輸入類型日期持久化到MySQL類型日期?

<input type=date" > 

, 並具有

@Column(name=birthday) 
public Date birthday; 

日期從java.util.Data

這需要保留MySQL數據庫導入的用戶模型,具有以下格式。 MySQL的字段類型日期

yyyy-mm-dd 

我試圖改變使用列

@DateTimeFormat(pattern = "yy-MMMM-dd") 

的格式,但它不工作,我假設這是因爲輸入格式類型。 我該如何改變?我正在使用彈簧引導。

+0

喜!你能提供更多細節嗎?如果你正在使用Spring引導你選擇使用MySQL的框架:Hibernate,Spring Data JPA,Spring JDBC模板?還請提供MySQL表結構 – Loniks

+0

嘿!當然。我正在使用Spring Data JPA。 'CREATE TABLE用戶(' 'USER_ID INT(11)NOT NULL AUTO_INCREMENT,' '電子郵件VARCHAR(255)NOT NULL,' '姓氏VARCHAR(255)NOT NULL,' '名VARCHAR(255)NOT NULL,'' 密碼爲varchar(255)NOT NULL,'' 生日日期NOT NULL,'' PRIMARY KEY'('user_id') ')' –

回答

1

我認爲你有問題,MessageConvertor你應該定義正確的日期格式爲傑克遜ObjectMapper爲您應該添加這兩種豆類

@Bean 
public MappingJackson2HttpMessageConverter primaryMessageConverter(){ 

    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); 
    converter.setObjectMapper(getObjectMapper()); 
    return converter; 
} 

@Bean 
public ObjectMapper getObjectMapper(){ 
    ObjectMapper objectMapper = new ObjectMapper(); 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
    objectMapper.setDateFormat(df); 
    return objectMapper; 
} 

簡單休息控制器之後應該可以正常工作

@RestController 
public class UserController { 

    @Autowired 
    private UserRepository userRepository; 

    @RequestMapping(value = "/user/",method = RequestMethod.POST) 
    public ResponseEntity saveUser(@RequestBody User user) { 
     userRepository.save(user); 
     return ResponseEntity.status(HttpStatus.CREATED).build() 
    } 
} 
+0

謝謝! 但我發現爲我工作的是在我的實體上添加這些註釋,現在它可以工作。 @Column(名稱= 「生日」) \t @DateTimeFormat(圖案= 「YYYY-MM-DD」) \t @Temporal(TemporalType.DATE) \t私人日期生日; 但是非常感謝你! –