应该使用什么数据类型来通过ID引用序列化对象?

时间:2012-08-04 13:46:34

标签: java xml spring serialization

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

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

这意味着我需要在我的Java类中使用ID属性。我应该将它声明为什么类型?我看到Simple library tutorial中使用的是int,我也看到UUID正在使用here

Simple library创建idref属性(或您提供的任何其他属性)以维护引用:

<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。我应该定义private UUID uid;并传递它,同时也让Simple生成它使用的辅助idref属性,或者有没有办法使用单个Java attribue来同时执行这两个操作?

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

@Attribute
private int id;

问题是我需要实例化并将其作为JSON传递,但它也需要是唯一的(这意味着它更容易使用UID)。此外,简单地使用此id作为其ref

编辑2:

使用id作为属性,然后使用CycleStrategy使它使用您在类中定义的值,而不是它在ref指向的XML中使用的内部值...我现在正在使用两个属性 - uuid我在内部生成id简单用法。

0 个答案:

没有答案