Ямл для самореферентного стола - PullRequest
1 голос
/ 17 февраля 2012

У меня есть модель, определенная следующим образом:

public class Link extends Model {

    @Required
    public String tag;
    @Required
    public String type;
    @Required
    public int weight;

    @ManyToOne(cascade = CascadeType.ALL)
    public Link parent;

    @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL)
    public List<Link> children;

    @ManyToMany(cascade = CascadeType.PERSIST)
    public List<Tag> tags;
}

Я не могу указать родителя для первых двух элементов в yaml, чтобы сопоставить мои данные

Link(m):
   tag: m
   type: home
   weight: 1
   tags:
         - tagH
         - tagM

Link(hh):
   tag: hh
   type: home
   weight: 2
   tags:
         - tagH
         - tagHH

artoo.Link(focus):
   tag: focus
   type: footer
   weight: 1
   tags:
          - tagTechnology
          - tagLegal
   children:
             - m
             - hh

1 Ответ

1 голос
/ 24 февраля 2012

Владение вашими связями родитель-потомок Link-to-Link принадлежит дочернему объекту.Владение определяется параметром mappedBy в

@OneToMany(mappedBy = "parent", cascade = CascadeType.ALL)

. Поэтому вы должны сначала объявить ваш родительский объект в YAML и опустить поле "children" из родительского объекта.Затем вы можете добавить объявления дочерних объектов после объявления родительского объекта и добавить поля

parent: focus

к дочерним объектам.Это должно быть что-то вроде этого:

Link(focus):
    ...

Link(m):
    parent: focus

Link(hh):
    parent: focus
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...