У меня есть фрагмент схемы, который выглядит как
<xs:element name="dataValue">
<xs:complexType>
<xs:sequence>
<xs:element name="value" type="xs:anyType"\>
</xs:sequence>
</xs:complexType>
</xs:element>
Класс, создаваемый hyperjaxb3, содержит следующий фрагмент:
@XmlElement(required = true)
protected Object value;
@Transient
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
@Basic
@Column(name = "VALUEOBJECT")
public String getValueObject() {
if (JAXBContextUtils.
isMarshallable("org.lcogt.schema", this.getValue())) {
return JAXBContextUtils.unmarshall("org.lcogt.schema", this.getValue());
} else {
return null;
}
}
Я понимаю, что hibernate будет бороться за сохранение чистого объекта, поэтому hyperjaxb предполагает, что объект может быть преобразован в строку XML, и результирующая строка будет сохранена. В моем случае это не так, но я могу гарантировать, что метод toString () вернет что-то полезное. Я хотел бы, чтобы сгенерированный код выглядел больше как:
@XmlElement(required = true)
protected Object value;
@Transient
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
@Basic
@Column(name = "VALUEOBJECT")
public String getValueObject() {
return value.toString();
}
Могу ли я получить этот эффект или что-то подобное?
Спасибо
Mark.