SnakeYaml создает объект с помощью статического метода

Я пытаюсь использовать змею с Play Framework 2 для создания объектов Ebean.

это хорошо работает с

!!models.User
  name: Leon

Но я хотел бы сослаться на уже сохраненные элементы. что означает, что я не хочу создавать новые объекты.

Итак, если я сделаю что-то подобное, чтобы попытаться сослаться на уже созданную группу

!!models.Group &mygroup
  id: 1

!!models.User
  group: *mygroup

Он будет жаловаться, что группа с id: 1 уже существует

Ebean имеет метод EbeanServer.getReference(type, id), который доступен из статического метода поиска в классе модели.

Group.find.ref(1)

Я хотел бы иметь возможность сделать что-то подобное (но сейчас это не работает)

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

Как я могу вызвать этот статический метод из змейки, чтобы получить ссылку вместо нового объекта?


person Leon Radley    schedule 13.12.2012    source источник
comment
Вы изучали пользовательские конструкторы? У меня есть (старый) пример здесь: github.com/mariussoutier/EOFFixtures/blob/master/Sources/de/   -  person Marius Soutier    schedule 14.12.2012


Ответы (1)


Чтобы решить эту проблему, мне пришлось создать собственный конструктор Yaml, который использует Ebean.getServer("default").getReference(models.User.class, 1).

https://gist.github.com/4326933

Надеюсь, это поможет кому-то!

person Leon Radley    schedule 18.12.2012