我有一堆类将被实例化并在我的 JS 前端和 Spring MVC 之间传递。
我正在使用Simple将我的对象序列化为 XML 以进行持久存储,并使用Jackson将其作为 JSON 传递给我的 UI。因此,我需要一个用于引用对象的 ID 属性,这需要在 JSON、POJO 和 XML 中保持一致。
这意味着我的 Java 类中需要一个 ID 属性。我应该将它声明为什么类型?我已经看到int
在Simple 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 生成它使用的辅助id
和ref
属性,还是有办法使用单个 Java 属性来完成这两者?
编辑: Hibernate 有一个@Id
注释,但我找不到与 Simple 类似的东西。这会吗?
@Attribute
private int id;
问题是我需要实例化它并将其作为 JSON 传递,但它也需要是唯一的(这意味着使用 UID 会更容易)。此外,Simple 会使用id
它ref
吗?
编辑2:
用作属性,然后使用id
CycleStrategy 会导致它使用您从类中定义的值,而不是它在ref
指向的 XML 中使用的内部值...我现在使用两个属性 -uuid
我一起生成内部使用id
简单。