2013-07-03 70 views
0

这不是一个问题,它更多的是“这是正确的方法”这种交易。Play Framework连接和模型

所以可以说我有这样的

class A extends Model{ 
    @OneToMany(cascade = CascadeType.ALL) 
    public B; 
} 

class B extends Model{ 

    String c; 
} 

现在我要访问一个有C在他们B对象特定值的所有对象的模型。

所以我应该:

  1. 获得B的所有对象具有一定值c,然后找到相应的A公司与这些对象(如果是的话怎么样,感到困惑)
  2. 获得A的所有对象find.all()然后查看列表(似乎是一个坏主意,因为会有大量的A而不是那么多的B)。

任何帮助,将不胜感激(哦,并假设我写@Entity@Required,并适当其余全部)

回答

1

选项1是正确的道路要走。您可以使用如下查询:

A.find().where().eq("b.id", yourBId).findList(); 

如果未自动提取,可能会添加一个提取(“b”)。

+0

这适用于'@ OneToOne',但由于某种原因,当我使用'@ OneToMany'时失败。任何想法为什么? – cjds

+0

它如何失败?如何使用添加的提取,如:A.find.fetch(“b”)。where()。eq(“b.id”,bId).findList(); – Kayaman