Spring REST(新機能)に問題があります。Spring REST - 抽象スーパークラスの@createdDateでエラーが発生する
私の意図は、ID/Version/CreatedDateのようないくつかの一般的なフィールドを持つAbstract-Super-Classを持つことです。 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'のゲッターとセッターを含めてください。 – Kirby
私はそのフィールドのゲッターセッターを含んでいました。返信のThx – Hannes
あなたのプロジェクトのどこかに '@ EnableJpaAuditing'という注釈がありますか? – Kirby