HQLはどんなHQLとSQLの違いですか?

957 ワード

1.HQLとは
            Hibernate独自の検索言語は、対象に向けた検索言語であり、            HQLを作成するときは、データベーステーブルのフィールドではなく、属性の名前を書く必要があります。
              HQLはHbernate Query LanguageであるHbername検索言語です。
           [select/udate/delete…]from Entity[where…][group by…][having...]
2.なぜHQLを使うか
       繁雑なSQL文を編纂する必要はなく、実体類とその属性について問い合わせる。
    照会の結果、直接にListに保存されているオブジェクトです。再パッケージは必要ありません。
     データベースから独立して(異なるデータベースに対してクエリーを行い、データベースにまたがり、Mysql->Oracle)、
     異なるデータベースに対して、Hybernate dialect属性の配置によって自動的に異なるSQL文を生成して実行します。
3.HQL文はどう使いますか?
(1)Sessionオブジェクトの取得
(2)HQL文を作成する;
(3)Queryオブジェクトを作成する;
(4)クエリーを実行し、クエリー結果を得る。
4.HQLとSQLの違い
hql文とsql文の違い:hql文は対象向けです。
hql : FROM user where id='1';
sql  : FROM TB_USER where id= '1' 
(hqlが直接データベースに持っていくのは無理です。対象に向けてsqlは彼がデータベースに向かっているからです。)
entityManager.createQuery();     hql  
entityManager.createNativeQuery();      sql