次のようなスキーマフラグメントがあります
<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();
}
とにかく私はこの効果または同様のものを得ることができますか?
ありがとう、
マーク。