двунаправленный в test_data.yml - PullRequest
1 голос
/ 29 апреля 2011

Если у меня есть этот код

@Entity
public class Category extends Model {

    public String title;

    public Category() {}

    public Category(String title) {
        this.title = title;
    }

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JoinColumn(name="parent")
    public List<Category> children = new LinkedList<Category>();

    @ManyToOne
    @JoinColumn(name="parent", insertable=false, updatable=false)
    public Category parent;

    public void addChild(Category child) {
        Category root = this;
        child.parent = root;
        root.children.add(child);
        root.save();
    }
}

И я хочу создать тестовые данные в моем файле test_data.yml , как я могу напечатать его там?Я имею в виду, что это двунаправленный ..

Например, если бы я сделал это так:

 Category(root1):
   title: root
   children: [child1, child2]

 Category(child1):
   title: child1
   parent: root1

 Category(child2):
   title: child2
   parent: root1

Я бы получил эту ошибку:

Не могуload fixture initial-data.yml: Предыдущая ссылка на объект типа child с ключом child1

не найденаchild1 и child2 не будут ссылаться на root.

1 Ответ

0 голосов
/ 30 сентября 2011

Я делал похожие вещи на похожей модели:

Category(cat5):
  title: Cameras & Photo
Category(cat5.1): {title: Digital Camera, parent: cat5}

Это работает, пока я использую данные yaml только для начальной загрузки. Потому что установлена ​​только родительская ссылка, а дочерний список родительской категории остается неинициализированным. В Hibernate это работает, потому что внешний ключ установлен правильно. Это не красиво, но это работает для меня. Мне еще предстоит выяснить, что делать с этими предварительными декларациями в yaml.

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