【问题标题】:Play Framework joins and the modelPlay Framework 加入和模型
【发布时间】:2013-07-03 13:31:30
【问题描述】:

这不是问题,它更像是一种“这是正确的方法”之类的交易。

假设我有一个这样的模型

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

class B extends Model{

   String c;
}

现在我想访问 A 的所有对象,这些对象在其 B 对象中具有特定的 c 值。

我也应该这样做:

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

任何帮助都将不胜感激(哦,假设我已经写了 @Entity@Required 以及其他所有内容)

【问题讨论】:

    标签: java playframework-2.0 ebean


    【解决方案1】:

    选项 1 是正确的方法。您可以使用查询,例如

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

    如果没有自动获取,可能会添加一个 fetch("b")。

    【讨论】:

    • 这适用于@OneToOne,但由于某种原因,当我使用@OneToMany 时它会失败。知道为什么吗?
    • 它是如何失败的?添加 fetch 怎么样,例如: A.find.fetch("b").where().eq("b.id", bId).findList();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多