JAXB将一个POJO属性编组到另一个中

时间:2017-05-31 07:16:48

标签: java jaxb

我从数据库获得了POJO:

@Entity
public class Application implements Serializable{

private static final long serialVersionUID = 1L;

@Id
private Integer id;

@Column(name = "XMLOTHERINFORMATION", columnDefinition="XMLType")
private String xmlOtherInformation;

...

我想以某种方式为retrive unmarshalled类创建一个瞬态属性的getter。我认为每次调用时都会在getter中对marshall / unmarshall进行调整是一个坏主意,因为xmlOtherInformation可能很大,我担心它会使性能变差。还有另一个问题我应该在持久性之前同步String属性和XMLClass。任何想法如何处理?

1 个答案:

答案 0 :(得分:0)

为了实现两个数据结构之间的同步,我可以推荐两个选项:

1)在所有应用程序中使用一种数据类型(最好是POJO),并在需要时将其转换为XML。此时,您知道您正在转换最新的对象状态。

2)创建一个包含两个版本的数据并分别管理它们的包装类。每当您需要某种数据类型时,这将避免转换,但也会降低您的性能并分配更多内存。

任何方式你必须根据你的任务决定做什么。如果您知道数据将经常更改但未读取,那么您可以使用单个对象进行操作,并在需要时将其转换为另一个状态。在其他情况下,如果您经常读取操作,那么最好在内存中包含这两种数据类型,但更新将花费更多时间。