Java HyperJaxb3和xsd:anyType
我有一个模式片段,看起来像Java HyperJaxb3和xsd:anyType,java,xsd,jaxb,hyperjaxb,Java,Xsd,Jaxb,Hyperjaxb,我有一个模式片段,看起来像 <xs:element name="dataValue"> <xs:complexType> <xs:sequence> <xs:element name="value" type="xs:anyType"\> </xs:sequence> </xs:complexTyp
<xs:element name="dataValue">
<xs:complexType>
<xs:sequence>
<xs:element name="value" type="xs:anyType"\>
</xs:sequence>
</xs:complexType>
</xs:element>
我知道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();
}
我能得到这种效果或类似的效果吗
谢谢
标记。问题是这种转换必须是双向的:您还必须能够从字符串中“解析”您的对象-否则您将无法获得您的对象。因此,
toString()
是不够的(但它是一个完美的起点)
我认为这可以通过定制适配器来解决。即,为该属性编写并配置自己的适配器。适配器将对您的类型执行toString()
/fromString(…)
这里有一个问题:
我发布了一些打印屏幕,作为对另一篇关于hyperjaxb3的帖子的编辑。命令行说构建是成功的,即使没有生成预期的java文件。有一个关于缺少库的警告,但即使在我在m2存储库中强制重新下载库并重试后,该警告仍然存在。代码中给出了特定的行号。你愿意帮我吗?以下是链接:
@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();
}