2016-06-17 4 views
1

Ich arbeite mit SQL-db in Spring-Boot-Anwendung. 1) sql Typ DATE und Format JJJJ-MM-DD.@DateTimeFormatter ohne führenden Nullen nur JJJJ-MM-dd als meine SQL-Spring-Boot

2) Wenn ich Temporal Typ verwendet, zieht es Daten im richtigen Format, aber während Bearbeiten und Hinzufügen von Operationen scheint es nicht zu erlauben.

3) Wenn ich DateTime Formatierer verwendet habe, funktioniert alles einwandfrei, aber Daten werden hochgezogen oder mit führenden Nullen in der Anwendung hinzugefügt, die ich nicht für meine Anwendung haben möchte. 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; 

bitte beraten, was getan werden kann, und hinzuzufügen, wenn ich Typ LOCALDATE ändern, es wirft

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

Antwort

1

Joda Abhängigkeiten Hinzufügen funktionieren würde, da es Locale Datum Konvertierung unterstützen und Mapping wäre sql angemessen und wird als DATE (auf MySQL) abgebildet, dh nur Datum ohne Zeitstempel/führende Null ist nur YYYY-MM-DD. diese in dieser in pom.xml hinzufügen

 <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> 

und diese Klasse zu Ihrem Unternehmen.

@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

Danke !!!! Es klappt ! :) :) –