Испытательные светильники ManyToMany (Yaml) в Play Framework 1.2.x - PullRequest
4 голосов
/ 15 марта 2012

Я использую Play!1.2.4 + Morhpia / MongoDB.

Моими моделями являются салоны и стилисты, у которых много-много общего.Однако я не могу правильно определить тестовые данные для представления этих отношений.

Вот что я сделал

Salon(salon1):
  name: salon1
  city: singapore
  country: singapore

Stylist(stylist1):
  firstName: stylist1
  lastName: stylist1
  title: Stylist 1
  price: $100
  salons: [salon1]

С этими данными стилист содержит ссылку на салон, а не наоборот.

Как добиться двухсторонней ссылки?

Спасибо, Шри


Вот классы моделей ..

@Entity("salons")
public class Salon extends Model {
  // ...
  @Reference
  @ManyToMany
  public List<Stylist> stylists;
  // ...
}

@Entity("stylists")
public class Stylist extends Model {
  // ..
  @Reference
  @ManyToMany
  public List<Salon> salons;
  // ..
}

1 Ответ

2 голосов
/ 15 марта 2012

Что вы подразумеваете под двухсторонней ссылкой?

Если вы хотите иметь возможность получать доступ к Стилистам из вашей сущности Salon в коде, то вам понадобится что-то вроде этого:

public class Salon extends Model {

    @ManyToMany
    @JoinTable(name = "salon_stylist", ...)
    public List<Stylist> stylists;

    ...
}

И ваша сущность Stylist может выглядеть следующим образом:

public class Stylist extends Model {

    @ManyToMany
    @JoinTable(name = "salon_stylist", ...)
    public List<Salon> salons;

    ...
}        

Тогда ваш yml может выглядеть следующим образом:

Salon(salon1):
  name: salon1
  city: singapore
  country: singapore

Salon(salon2):
  name: salon2
  city: tokyo
  country: japan

Stylist(stylist1):
  firstName: stylist1
  lastName: stylist1
  title: Stylist 1
  price: $100
  salons: 
    - salon1
    - salon2

Просто сказать, что stylist1 принадлежит salon1 и salon2 должныбыть достаточно в yml (то есть вы не должны объявлять то же самое в двух записях салонного yml).

...