Java Play Framework 1.2.x中的许多测试夹具(Yaml)

Java Play Framework 1.2.x中的许多测试夹具(Yaml),java,playframework,yaml,fixtures,Java,Playframework,Yaml,Fixtures,我在玩!1.2.4+Morhpia/MongoDB 我的模特是沙龙和造型师,他们有着多对多的关系。但是,我无法正确定义测试数据来表示这种关系 这就是我所做的 Salon(salon1): name: salon1 city: singapore country: singapore Stylist(stylist1): firstName: stylist1 lastName: stylist1 title: Stylist 1 price: $100 salo

我在玩!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;
  // ..
}
@实体(“沙龙”)
公共课沙龙扩展模式{
// ...
@参考文献
@许多
公开名单设计师;
// ...
}
@实体(“造型师”)
公共类造型师扩展模型{
// ..
@参考文献
@许多
公开名单沙龙;
// ..
}

双向引用是什么意思

如果您的意思是希望能够在代码中从您的沙龙实体访问造型师,那么您需要具备以下功能:

public class Salon extends Model {

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

    ...
}
public class Stylist extends Model {

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

    ...
}        
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

仅说Stylest1属于salon1和salon2在yml中就足够了(即,您不必在两个salon yml条目中声明相同的内容)。

我想从沙龙访问Stylests,例如salon1.Stylests.get(0)。我已经可以这么做Stylest1.salons.get(0)在上面的代码应该是可能的。因此,如果您这样做:Salon salon1=Salon.find(“name=?”,“salon1”);然后你应该可以像你想的那样接触设计师。使用上面的示例,salon1.Stylests.get(0)应该返回表示Stylest1的对象。不,不起作用。我使用Morphia和MongoDB数据存储。问题中包括了我的模型课。谢谢。Stylest1.salons是空列表还是空列表?另外,如果您直接查询Stylest1,它是否知道它属于salon1?Stylest1.salons在正确的Salon引用中有效。沙龙1.发型师是一个空列表。