JAXB字符串到Java中的JPA日期
我的XML将日期值存储为字符串(客户机要求),我希望该字符串在数据库中存储为日期,因为它是少数排序和分组所必需的 我创建了一个类,在单个类中包含JAXB和JPA注释 我希望我的类读/写带有字符串值的XML,但当它存储在数据库中时,JPA实体应该将其转换为日期并存储在DB中 当前代码我以字符串形式阅读,因为我找不到简洁的解决方案: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
@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都是在同一个类中编写的。