2017-11-03 14 views
0

いくつかのバージョンからなるテーブル(tbl_versions)があります。バージョン間の関係は、親と子のようなものです。 2つのレコード(parent_id、child_id)を持つ別のテーブル(tbl_relations)にリレーションを入れ、tbl_versionsとの関係が多岐にわたっています。私はツリーモデルとしてデータを取得し、最後にツリーモデルにあるjsonファイルを持っています。 JPQLを選択して取得するにはどうすればよいですか?JPAを使用して階層的にデータを取得する方法(同じテーブルへの多対多ジョイン)

+0

JPAとJPQLはエンティティのオブジェクトを取得します。あなたは私たちにあなたの実体を示していません。あなたのエンティティ、あなたが試したJPQL、得られた結果が問題だと思う理由を定義してください – DN1

答えて

1

実装するのは容易ではありません。一般的に言えば、ネイティブSQLを書くことは、日の終わりまでに、JPQL、HQLなど、ネイティブSQLに変換されてデータベースに送信されるため、クエリを作成する最も強力な方法です。次に、SQLを使用してクエリを書くことができない場合は、JPQLで記述する方法は見つけられません。

しかし、OracleなどのデータベースはMySQLのような他のデータベースがそれをサポートしていないので、JPQLでサポートされていないによって接続してスタートのようなメカニズムを提供し、戻ってあなたの具体的な問題になって。

私の提案では、この場合、複数の列を使用してレコード間の階層を保持しています。この列は、2つのレコード間の親子関係だけでなく、現在のレコードの祖先に関する情報も記述するメタデータ・ホルダーとして機能します。

関連する問題