Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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
JAXB字符串到Java中的JPA日期_Java_Xml_Hibernate_Jpa_Jaxb - Fatal编程技术网

JAXB字符串到Java中的JPA日期

JAXB字符串到Java中的JPA日期,java,xml,hibernate,jpa,jaxb,Java,Xml,Hibernate,Jpa,Jaxb,我的XML将日期值存储为字符串(客户机要求),我希望该字符串在数据库中存储为日期,因为它是少数排序和分组所必需的 我创建了一个类,在单个类中包含JAXB和JPA注释 我希望我的类读/写带有字符串值的XML,但当它存储在数据库中时,JPA实体应该将其转换为日期并存储在DB中 当前代码我以字符串形式阅读,因为我找不到简洁的解决方案: @XmlElement(name = "TransactionDate", required = true) protected String tran

我的XML将日期值存储为字符串(客户机要求),我希望该字符串在数据库中存储为日期,因为它是少数排序和分组所必需的

我创建了一个类,在单个类中包含JAXB和JPA注释

我希望我的类读/写带有字符串值的XML,但当它存储在数据库中时,JPA实体应该将其转换为日期并存储在DB中

当前代码我以字符串形式阅读,因为我找不到简洁的解决方案:

    @XmlElement(name = "TransactionDate", required = true)
    protected String transactionDate;

    @Basic
    @Column(name = "TRANSACTIONDATE", length = 255)
    public String getTransactionDate() {
        return transactionDate;
    }

    public void setTransactionDate(String value) {
        this.transactionDate = value;
请帮我实现它。

使用XmlAdapter,我们可以如上所述实现它。我所做的唯一更改是维护两种不同的DateFormat来读取Jaxb和写入JPA


使用XmlAdapter,我们可以如上所述实现它。我所做的唯一更改是维护两种不同的DateFormat来读取Jaxb和写入JPA

此问题可能会有所帮助(将对象字段保留为
日期
,但将XML序列化/反序列化为
字符串
):您可以创建第二个只读日期字段。第一个将保持与JAXB的映射,第二个将与DB的映射。您说您正在接收一个xml格式的日期作为字符串,日期格式是什么?如果它是XSD:date或XSD-datetime,您应该可以轻松地将其解组为XMLGregorianCalendar对象,这将允许轻松转换为java.util。Date@Berger-当我使用Null时,它被插入到数据库中。@SergeyMorozov——它将同时支持封送和取消封送。我所做的操作是-1)读取XML并使用JPA将其存储在DB中;2)从数据库加载数据并通过JAXB封送XML。JPA和JAXb都是在同一个类中编写的。这个问题可能会有所帮助(将对象字段保持为
日期
,但将XML序列化/反序列化为
字符串
):您可以创建第二个只读日期字段。第一个将保持与JAXB的映射,第二个将与DB的映射。您说您正在接收一个xml格式的日期作为字符串,日期格式是什么?如果它是XSD:date或XSD-datetime,您应该可以轻松地将其解组为XMLGregorianCalendar对象,这将允许轻松转换为java.util。Date@Berger-当我使用Null时,它被插入到数据库中。@SergeyMorozov——它将同时支持封送和取消封送。我所做的操作是-1)读取XML并使用JPA将其存储在DB中;2)从数据库加载数据并通过JAXB封送XML。JPA和JAXb都是在同一个类中编写的。