2016-06-17 2 views
1

제로의 단지 YYYY-MM-DD를 선도없이 나는 봄 부팅 응용 프로그램에서 SQL DB를 함께 일하고 있습니다. 1) SQL 형식 DATE 및 형식 yyyy-MM-DD. 나는 임시 유형을 사용하는 경우@DateTimeFormatter 내 SQL 봄으로 부팅

2), 그것은 적절한 형식의 데이터를 가져옵니다,하지만 편집을하고 작업을 추가하면서, 그것을 허용하지 않는 것 같습니다. 내가 날짜 시간 포맷을 사용하는 경우

3), 모든 작업이 잘 작동하지만 데이터까지 끌어, 또는 내가 내 응용 프로그램에 대한 원하지 않는 응용 프로그램에서 제로의 선두에 추가되고. Employee.java이

@DateTimeFormat(pattern = "yyyy-MM-dd") 
    @Column(name="birth_date") 
    @NotNull @Past 
// @Temporal(TemporalType.DATE) 
    private Date birthDate; 



    @DateTimeFormat(pattern = "yyyy-MM-dd") 
    @Column(name="hire_date") 
    @NotNull 
// @Temporal(TemporalType.DATE) 
    private Date hireDate; 

수행 할 수 있습니다, 나는 LOCALDATE에 유형을 변경할 때 추가 할 것을 조언하십시오, 그것은 발생이 로케일 날짜 변환을 지원하기 때문에, 일하는 것이 Joda 종속성을 추가

There was an unexpected error (type=Internal Server Error, status=500). 
could not deserialize; nested exception is org.hibernate.type.SerializationException: could not deserialize 

답변

1

및 매핑은 SQL에 따라 적절하며 DATE (MySQL에서)로 매핑됩니다. 즉, 타임 스탬프/선행 0이없는 날짜 만 YYYY-MM-DD로 매핑됩니다. 엔터티 클래스의 pom.xml이에

 <dependency> 
    <groupId>joda-time</groupId> 
    <artifactId>joda-time</artifactId> 
</dependency> 

<dependency> 
    <groupId>org.jadira.usertype</groupId> 
    <artifactId>usertype.core</artifactId> 
    <version>3.1.0.CR1</version> 
</dependency> 

<dependency> 
    <groupId>joda-time</groupId> 
    <artifactId>joda-time-hibernate</artifactId> 
    <version>1.3</version> 
</dependency> 
<dependency> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time-jsptags</artifactId> 
     <version>1.1.1</version> 
</dependency> 

이 이러한 추가 .

@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDate") 
@DateTimeFormat(pattern = "yyyy-MM-dd") 
@Column(name="birth_date") 
@NotNull 
private LocalDate birthDate;` 

public LocalDate getBirthDate() { 
    return this.birthDate; 
} 

public void setBirthDate(LocalDate birthDate) { 
    this.birthDate = birthDate; 
}` 
+0

감사합니다 !!!! 그것은 작동합니다! :) :) –