Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HyperJaxb3和xsd:anyType_Java_Xsd_Jaxb_Hyperjaxb - Fatal编程技术网

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();
}