我有一個彈出數據投影,用於內聯一些關係字段。當應用投影時,日期時間字段不再以iso8601的形式輸出(就像它們沒有投影一樣),而是以另一種格式輸出。Spring Data Projection中的自定義日期時間格式
如何使投影格式的日期時間爲ISO8601?這裏是目前我的投影:
package io.cocept.model.projection;
import io.cocept.model.Meeting;
import io.cocept.model.User;
import org.springframework.data.rest.core.config.Projection;
import org.springframework.format.annotation.DateTimeFormat;
@Projection(name = "inlineUsers", types = { Meeting.class })
public interface MeetingInlineUsersProjection {
String getAddress();
String getDateTime();
String getMessage();
User getOwner();
User getInvitee();
}
和我的會議類:
package io.cocept.model;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Entity
public class Meeting extends BaseEntity {
private User owner;
private User invitee;
private String address;
private Date dateTime;
private String message;
public Meeting() {
}
@ManyToOne
@NotNull
@JoinColumn(name = "owner_id")
public User getOwner() {
return owner;
}
public void setOwner(User owner) {
this.owner = owner;
}
@ManyToOne
@NotNull
@JoinColumn(name = "invitee_id")
public User getInvitee(){
return invitee;
}
public void setInvitee(User invitee){
this.invitee = invitee;
}
@NotNull
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@NotNull
public Date getDateTime() {
return dateTime;
}
public void setDateTime(Date dateTime) {
this.dateTime = dateTime;
}
public String getMessage(){ return message; }
public void setMessage(String message){ this.message = message; }
}
我已經嘗試添加裝飾@DateTimeFormat(pattern = "YYYY")
到getDateTime()屬性,但它不會改變輸出的日期格式。
任何想法?
感謝 最大
很高興看到Dean Clark的答案能否奏效(我懷疑)。但是你可以使用jackson並創建一個組件並使用json反序列化(http://stackoverflow.com/a/38186623/3003337)。 – surya
爲什麼在投影中使用String作爲數據類型? –