1
ここでは状況があります。私は複数の多対多の関係を持つ1つのテーブルを持っています。 複数のテーブルからのActiveJDBC選択レコード集計
game (id, name, year_release ...)
game_price (game_id, price_id, amount)
price(id, label -- new game, used game)
category(id, name)
game_category(game_id, category_id)
ここで、各ゲーム、価格のリスト、およびカテゴリのリストで20のゲームのリストを選択します。
はSQLで私はここに例があり、この
select game.id, game.name string_agg(price.label||':'game_price.amount), string_agg(category.name)
from game
left join game_price gp on (game.id = gp.game_id)
left join price on (price.id = price_id)
left join game_category gc on (game.id = gc.game_id)
left join category on (category.id = category_id)
group by game.id
ような何かをするだろう:http://javalite.io/lazy_and_eagerための1対多、多対多のために何も。
最初にすべてのgame_priceをロードしてから、すべてのgame_categoryをロードする必要がありますか?
List<GamesPrices> gamesPrices = GamesPrices.findAll(Game.class, Price.class)
List<GamesCategories> gamesCategories = GamesCategories.findAll(Game.class, Category.class)
しかし、各ゲームのすべての情報を取得するにはどのようにループできますか?
私は第2の解決策をとった。モデルゲームはモデル価格に関連付けられていないため、最初のゲームは機能しません。このエラーが発生しました:java.lang.IllegalArgumentException:モデル:com.myapp.models.Priceがcom.myapp.models.Gameに関連付けられていません。しかし、2番目のソリューションは完璧です:) – Rony