我對Spring REST(新增功能)有麻煩。Spring REST - 抽象超類中的@createdDate拋出錯誤
我的意圖是擁有一個Abstract-Super-Class,它具有一些常用字段,如ID/Version/CreatedDate等等。 它與JPA和數據庫明智地工作得很好。但是,當我試圖揭露一個存儲庫的兒童PagingAndSortingRepository
我得到以下錯誤,一旦我查詢api。
其他領域的工作很好。它對應於@CreatedDate註釋。
錯誤:
Resolved exception caused by Handler execution:
org.springframework.http.converter.HttpMessageNotWritableException:
Could not write JSON: java.sql.Date cannot be cast to java.lang.String;
nested exception is com.fasterxml.jackson.databind.JsonMappingException:
java.sql.Date cannot be cast to java.lang.String (through reference chain:
org.springframework.hateoas.PagedResources["_embedded"]-
java.util.Collections$UnmodifiableMap["users"]->java.util.ArrayList[0]org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$PersistentEntityResourceSerializer$1["content"]->com.*.*.domain.User["createdDate"])
超:
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class AbstractPersistentObject
implements PersistentObject, Serializable {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
protected Long id;
protected Integer version;
@org.springframework.data.annotation.CreatedDate
@Temporal(TemporalType.DATE)
public Date createdDate;
... getter/setter/constructor
protected Date getCreatedDate() {
return createdDate;
}
protected void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
舉例子:
@Entity
@Table(name = "UserTable")
public class User extends AbstractPersistentObject {
private String firstName;
private String lastName;
@NotNull
@Column(unique = true)
private String email;
@JsonIgnore
private String password;
private boolean verified;
...
解決方案:從包裝
Upgrading Spring Boot from 2.0.0.M2 to 2.0.0.M3.
該錯誤指示數據類型轉換問題。請從'AbstractPersistentObject'包含'createdDate'的getter和setter。 – Kirby
我包括該字段的getter setter。 Thx回覆 – Hannes
您的項目中是否有註解'@ EnableJpaAuditing'? – Kirby