我实现了如何按日期替换 XmlGregorianCalendar 的解决方案?但不幸的是,它不适用于日期列表。在我的 XSD 中,我有
<xs:element name="Attribute1" type="xs:date" minOccurs="0">
和
<xs:element name="Attribute2" type="xs:date" minOccurs="0" maxOccurs="5">
Attribute2 是日期列表。如果我用这个属性加载一个实体,我会得到一个java.lang.ClassCastException: org.hibernate.collection.internal.PersistentList incompatible with java.util.Date
我认为问题在于,Hyperjaxb 只创建了一个适配器
public class Adapter2 extends XmlAdapter<String, Date>
{
public Date unmarshal(String value) {
return (XsdDateTimeConverter.unmarshal(value));
}
public String marshal(Date value) {
return (XsdDateTimeConverter.marshalDate(value));
}
}
也许 Hyperjaxb 还需要为之List<Date>
类创建一个 Adapterpublic class Adapter3 extends XmlAdapter<List<String>, List<Date>>
有人对此有解决方案吗?
问候 Erzen
PS:我已经看过问题Simple conversion between java.util.Date and XMLGregorianCalendar , java.util.Date to XMLGregorianCalendar and JAX-WS and Joda-Time? 但这些不适用于我的问题。