我实现了how replace XmlGregorianCalendar by Date?的解决方案,但遗憾的是它不适用于日期列表。 在我的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与java.util.Date不兼容
我认为问题在于,Hyperjaxb只创建了一个Adapter
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>
创建一个适配器public class Adapter3 extends XmlAdapter<List<String>, List<Date>>
有人有解决方案吗?
此致 Erzen
PS:我已经看过问题Simple conversion between java.util.Date and XMLGregorianCalendar,java.util.Date to XMLGregorianCalendar和JAX-WS and Joda-Time?,但这些问题并不适用于我的问题。