インスタンス化され、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 属性を使用して両方を行う方法はありますか?id
ref
編集: Hibernate には@Id
注釈がありますが、Simple に似たものが見つかりません。これでうまくいきますか?
@Attribute
private int id;
問題は、インスタンス化して JSON として渡す必要があることですが、一意である必要もあります (つまり、UID を使用する方が簡単です)。また、Simple はこれid
をそのために使用しref
ますか?
編集2:
属性として使用id
してから CycleStrategy を使用すると、ref
ポイントする XML で使用する内部値ではなく、クラスから定義した値が使用されます...私は今のところ 2 つの属性を使用しています -uuid
一緒に生成しますid
Simple は内部的に使用します。