【发布时间】:2018-02-26 23:57:30
【问题描述】:
我的 XML 将日期值存储为字符串(客户端要求),我希望将该字符串作为日期存储在我的数据库中,因为它是少数排序和分组所必需的。
我创建了一个在一个类中同时包含 JAXB 和 JPA 注释的类。
我希望我的类读取/写入带有字符串值的 XML,但是当它存储在数据库中时,JPA 实体应将其转换为日期并将其存储在数据库中。
目前的代码我正在阅读它作为字符串,因为我找不到简洁的解决方案:
@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;
请帮助我实现它。
【问题讨论】:
-
这个问题可能会有所帮助(将对象的字段保持为
Date,但将XML序列化/反序列化为String):stackoverflow.com/questions/13568543/… -
您可以创建第二个只读日期字段。第一个将保持与 JAXB 映射,第二个将与 DB 映射。
-
您说您正在接收 xml 中的日期作为字符串,日期格式是什么?如果它是 XSD:date 或 XSD datetime,您应该很容易将其解组为 XMLGregorianCalendar 对象,这将允许轻松转换为 java.util.Date
-
@Berger- 当我使用 Null 时,它被插入到数据库中。
-
@SergeyMorozov -- 它是否支持编组和取消编组。我所做的操作是 - 1) 使用 JPA 读取 XML 并将其存储在数据库中 2) 从数据库加载数据并通过 JAXB 编组 XML。 JPA 和 JAXb 都写在同一个类中。
标签: java xml hibernate jpa jaxb