3

Play Framework 2 で snakeyaml を使用して Ebean オブジェクトを作成しようとしています。

それはうまく動作します

!!models.User
  name: Leon

しかし、すでに永続化されているアイテムを参照したいと思います。つまり、新しいオブジェクトを作成したくないということです。

したがって、このようなことをして、既に作成されたグループを参照しようとすると

!!models.Group &mygroup
  id: 1

!!models.User
  group: *mygroup

id: 1 のグループが既に存在すると不平を言うでしょう。

Ebean にはEbeanServer.getReference(type, id)、モデル クラスの static find メソッドからアクセスできるメソッドがあります。

Group.find.ref(1)

私はこのようなことができるようにしたいです(しかし、今はうまくいきません)

!!models.Group.find.ref(1) &mygroup

この静的メソッドを snakeyaml から呼び出して、新しいオブジェクトの代わりに参照を取得するにはどうすればよいですか?

4

1 に答える 1

1

これを解決するには、次を使用するカスタム Yaml コンストラクターを作成する必要がありました。Ebean.getServer("default").getReference(models.User.class, 1)

https://gist.github.com/4326933

それが誰かを助けることを願っています!

于 2012-12-18T10:40:31.873 に答える