Поиск Ebean @ManyToMany

Я работаю над программой, которая получает твиты из twitterstream и сохраняет их в БД.

Есть модель ключевых слов и модель твитов.

Модель ключевых слов имеет множество твитов, например.

@ManyToMany
List<Tweets> tweets;

Я хочу искать твиты и возвращать только те, которые назначены этому ключевому слову. В ванильном SQL похоже на:

SELECT * FROM tweet t, keyword k, keyword_tweet kt where t.id=kt.tweet_id and k.id=kt.keyword_id

Любая идея, как это сделать в Play! с помощью эбина?

У каждого твита есть идентификатор, у каждого ключевого слова есть идентификатор. Play автоматически создала еще одну таблицу «keyword_tweet» для ассоциации @ManyToMany.


person Jordan H    schedule 18.02.2014    source источник


Ответы (1)


Вы можете сделать что-то вроде этого:

public List<Tweets> findTweets(Tweet t) {
     return Tweets.find
            .where()
            .eq("tweets.id", t.id)
            .findList();
}

То же, что указано в здесь

person mayurc    schedule 18.02.2014