2013-07-03 2 views
0

Это не проблема, ее больше похоже на сделку «это правильный подход».Play Framework объединяет и модель

Так позволяет сказать, что у меня есть модель, как этот

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

class B extends Model{ 

    String c; 
} 

Теперь я хочу, чтобы получить доступ ко всем объектам, которые имеют особое значение с в своих объектах B.

Так я должен:

  1. Получить все объекты B с определенным значением с, а затем найти соответствующий А с этими объектами (если да, то как, путаться)
  2. Получить все объекты с find.all() затем просмотрите список (кажется, плохая идея, так как будет большое количество A и не так много B).

Любая помощь будет оценена (ой, и предположим, что я написал @Entity и @Required и все остальное должным образом)

ответ

1

Вариант 1 является правильный путь. Вы можете использовать такой запрос

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

Возможно добавление выборки («Ъ»), если она не принесла автоматически.

+0

Это работает для '@ OneToOne', но по какой-то причине, когда я использую' @ OneToMany', он терпит неудачу. Любая идея почему? – cjds

+0

Как это происходит? Как насчет с добавленной выборкой, например: A.find.fetch ("b"). Where(). Eq ("b.id", bId) .findList(); – Kayaman