XMLGregorianCalendar
不JPA的支持,你可以使用java.util.Date
或java.util.Calendar
(解釋here )。
也許你可以看看項目Hyperjaxb3(爲JAXB對象提供關係持久性)。 Here它解釋瞭如何處理時間特性:
時間屬性(類型的xsd:DATETIME,XSD:日期,XSD:時間等) 將被映射爲時間JPA屬性。 Hyperjaxb3將根據時態屬性的XML Schema 類型選擇 時態類型作爲TIMESTAMP,DATE或TIME。時間屬性通常 映射到的XMLGregorianCalendar未通過JPA支持 - 和 爲此必須包裝:
<xs:element name="dateTime" type="xs:dateTime" minOccurs="0"/>
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar dateTime;
@Transient
public XMLGregorianCalendar getDateTime() {
return dateTime;
}
public void setDateTime(XMLGregorianCalendar value) {
this.dateTime = value;
}
@Basic
@Column(name = "DATETIMEITEM")
@Temporal(TemporalType.TIMESTAMP)
public Date getDateTimeItem() {
return XmlAdapterUtils.unmarshall(XMLGregorianCalendarAsDateTime.class, this.getDateTime());
}
public void setDateTimeItem(Date target) {
setDateTime(XmlAdapterUtils.marshall(XMLGregorianCalendarAsDateTime.class, target));
}
另一種方法是編寫自己的解決方案,進行一些轉換而不是試圖堅持你的JAXB對象。
謝謝帕特里克。我將在23小時內獎勵賞金。 – Bravo 2015-02-10 15:27:23
不客氣,祝你有美好的一天! – 2015-02-10 15:29:15