私はHibernateを学んでいます。私はHQLクエリ内でJOIN句をどのように使用しているのだろうかと思います。私は間違っているかもしれませんが、あなたはいつも一緒にいなくてもいいようです。Hibernate HQL:JOINは本当に必要ですか?
私はChildClassエンティティに、ParentClassとの@ManyToOne関係がマップされているとします。あなたは私が親クラスのidフィールドで結果をフィルタリングすることができ見ることができるように子クラスからアクセス、
session.createQuery("FROM ChildClass ch WHERE ch.parentClass.id=1L")
:
は今、私はこのようなHQLクエリーを構築することができますch.parentClass.idを
私はSQLで同じことをやってみたかった場合、私は、JOINを実行する必要があるだろう、とクエリは、次のようになります。
SELECT * FROM ChildTable ch
JOIN ParentTable p ON (ch.parent_id = p.id)
WHERE p.id=1;
私はこれがまっすぐになった場合は、HQLに私はしないでください含める必要がある@ManyToOneのマップされた関係が暗黙的に2つのエンティティに結合するため、クエリ内の任意のJOINを返します。なぜHQLクエリでJOINを使用するのですか? JOINが必要な状況がありますか?