私はプレイして休止状態になり、プロジェクトに取り組んでいます。私はこれまでのところそれが大好き!Play、MySQL、およびHibernateを使用してManyToManyテーブルをカスタムクエリする方法はありますか?
最近新しい問題が発生しました。私は人のテーブルを持っています。私はそのクラス内にManyToMany関係を持っています。だから、Hibernateはそのテーブルをうまく作成し、私はpeopleid1とpeopleid2を持ち、人々はあらゆる種類の他の人と人間関係を持つことができます。
これで、そのテーブルで複雑なクエリを実行する必要があります。私はそれを自分のクラスにしたいと思っていますが、それが最善の方法であるかどうか、または休止状態を使用しているかどうかはわかりません。 JPQLは答えですか?どんな助けや考えもありがとう!
例として、いとこを使用しましょう。私にはクラス/モデルPersonがあり、これらの人々はいとこを持ち、いとこになることができます。今すぐ私のコードでこれを持っています:
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name = "Cousins",
joinColumns = { @JoinColumn(name = "personid") },
inverseJoinColumns = { @JoinColumn(name = "cousinid") })
public Set<User> cousins;
これは素晴らしい作品であり、接合テーブルを完全に作成して、データを入力することができます。しかし、私は機能を記述しようとしている。私はログインした人がいとこを持っているが、ログインしているユーザーがいとこである場合は誰も見つけることができないすべての人々を見つけることができます。これは正しい方法だと思いますが、Cousinsを自分のクラス/モデルにするのは非常に気に入っています。そうしたときには動作しますが、Hibernateがその関係をどのように管理するかはわかりません。
何が質問ですか? JPQLがHibernateでリクエストを実行する方法であることを尋ねているなら、答えはYesです。結合テーブルをエンティティとしてマップする必要があるかどうかを確認する場合は、答えは「いいえ」です。休止状態のリファレンスドキュメントを読んでください:それは説明されています。 http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#collections-bidirectional –