1

インスタンス化され、JS フロントエンドと Spring MVC の間で渡されるクラスがたくさんあります。

Simpleを使用して永続ストレージ用にオブジェクトを XML としてシリアライズし、Jacksonを使用してそれを UI に JSON として渡しています。したがって、オブジェクトを参照するために使用される ID 属性が必要であり、これは JSON、POJO、および XML の両方で一貫している必要があります。

これは、Java クラスに ID 属性が必要であることを意味します。どの型として宣言する必要がありますか? Simple ライブラリintのチュートリアルで使用されているのを見たことがあります。また、ここで使用されているのも見ました。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 に渡されません。Simple が使用する補助属性と属性private UUID uid;を生成させながら、それを定義して渡す必要がありますか、それとも単一の Java 属性を使用して両方を行う方法はありますか?idref

編集: Hibernate には@Id注釈がありますが、Simple に似たものが見つかりません。これでうまくいきますか?

@Attribute
private int id;

問題は、インスタンス化して JSON として渡す必要があることですが、一意である必要もあります (つまり、UID を使用する方が簡単です)。また、Simple はこれidをそのために使用しrefますか?

編集2:

属性として使用idしてから CycleStrategy を使用すると、refポイントする XML で使用する内部値ではなく、クラスから定義した値が使用されます...私は今のところ 2 つの属性を使用しています -uuid一緒に生成しますidSimple は内部的に使用します。

4

0 に答える 0