Hibernate を使用して次の例外が発生します。
JPAQueryException が発生しました: クエリの実行中にエラーが発生しました select f from Flyer as f join f.events as e where e.start > ? および e.start < ? f.popularityTag > 1 group by f order by sqrt((-118.39419-f.venue.lng) * (-118.39419-f.venue.lng)+(34.024353-f.venue.lat)*(34.024353-f.会場.lat)) asc: エラー: 列 "venue2_.lng" は GROUP BY 句に表示されるか、集計関数で使用する必要があります
上記は、クエリの HQL を示しています。その HQL が生成する SQL は次のとおりです。
id345_としてflyer0_.idを選択し、venue77_345_としてflyer0_.venue_idを選択します。flyer0_.id=events1_.flyer_idでイベントevents1_に参加します。および events1_.start1 は、flyer0_.id によってグループ化されます。
テーブルはフライヤー、イベント、会場です。
イベント テーブルは、フライヤーの開始時刻と終了時刻を追跡します...フライヤーは複数の日に繰り返すことができます...したがって、複数のイベントがあります。
各フライヤーには 1 つの会場があり、フライヤーで宣伝されていることが行われます。
私のデータベースに関しては、次の URL で説明されているように、Heroku PostgreSQL Crane を使用しています。PostgreSQL 9.1を使用していると思います:
- https://postgres.heroku.com/blog/past/2012/5/3/crane_the_new_50_per_month_production_database_/
- https://addons.heroku.com/heroku-postgresql
- https://devcenter.heroku.com/articles/heroku-postgresql
休止状態に関しては、私が使用している Play Framework 1.2.5 は以下を使用しているようです:
- org.hibernate -> hibernate-core 3.6.10.Final
- org.hibernate -> hibernate-commons-annotations 3.2.0.Final
- org.hibernate -> hibernate-entitymanager 3.6.10.Final
- org.hibernate -> hibernate-validator 4.1.0.Final
私の質問は、その JPAQueryException の原因です。どうすれば修正できますか?
ありがとう!