1

我有一堆类将被实例化并在我的 JS 前端和 Spring MVC 之间传递。

我正在使用Simple将我的对象序列化为 XML 以进行持久存储,并使用Jackson将其作为 JSON 传递给我的 UI。因此,我需要一个用于引用对象的 ID 属性,这需要在 JSON、POJO 和 XML 中保持一致。

这意味着我的 Java 类中需要一个 ID 属性。我应该将它声明为什么类型?我已经看到intSimple library 教程中使用过,我也看到过UUID此处使用。

Simple 库创建id和属性(或您提供的ref任何其他属性)以维护引用:

<parent name="john" id="1">
   <children>
      <child id="2" name="tom">
         <parent ref="1"/>
      </child>
   </children>
</parent>

随附的 Java 将其读回:

Strategy strategy = new CycleStrategy("id", "ref");
Serializer serializer = new Persister(strategy);
File source = new File("example.xml");
Parent parent = serializer.read(Parent.class, source);

但是id,它不在原始 Java 对象中,因此它不会与 JSON 一起传递给 UI。我应该定义 aprivate UUID uid;并传递它,同时让 Simple 生成它使用的辅助idref属性,还是有办法使用单个 Java 属性来完成这两者?

编辑: Hibernate 有一个@Id注释,但我找不到与 Simple 类似的东西。这会吗?

@Attribute
private int id;

问题是我需要实例化它并将其作为 JSON 传递,但它也需要是唯一的(这意味着使用 UID 会更容易)。此外,Simple 会使用idref吗?

编辑2:

用作属性,然后使用idCycleStrategy 会导致它使用您从类中定义的值,而不是它在ref指向的 XML 中使用的内部值...我现在使用两个属性 -uuid我一起生成内部使用id简单。

4

0 回答 0