使用JAXB注释分组属性

4

我有一个类Product,具有以下属性:namedateCreatedcreatedByUserdateModifiedmodifiedByUser,我正在使用JAXB编组。我想要的输出如下:

<product>
    <name>...</name>
    <auditInfo>
        <dateCreated>...</dateCreated>
        <createdByUser>...</createdByUser>
        <dateModified>...</dateModified>
        <modifiedByUser>...</modifiedByUser>
    </auditInfo>
</product>

但是我希望避免创建一个单独的AuditInfo包装类来包含这些属性。

是否有一种方法可以使用JAXB注释来实现这一点?我看了一下@XmlElementWrapper,但那只适用于集合。

2个回答

3

这看起来是一个有用的扩展。谢谢你提供的信息。 - user41871

2
不,我不这么认为。中间类是必要的。
您可以通过在“Product”内部嵌套“AuditInfo”作为内部类,并在“Product”上添加getter和setter方法来绕过此问题,以设置“AuditInfo”的字段。 “Product”的客户端永远不需要知道。
public class Product {
   private @XmlElement AuditInfo auditInfo = new AuditInfo();

   public void setDateCreated(...) {
      auditInfo.dateCreated = ...
   }

   public static class AuditInfo {
      private @XmlElement String dateCreated;
   }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接