JPQLに基づく純粋なSQL文方式の詳細な説明

JPQLに基づく純粋なSQL文方式の詳細な説明

JPQL は Java Persistence Query Language の略です。

Java Persistence Query Language (JPQL) は、EJB 2.0 で初めて導入された EJB Query Language (EJB QL) に基づいて、SQL 構文と単純なクエリ セマンティクスをオブジェクト指向式言語の形式で結合するように設計された移植可能なクエリ言語です。この言語で記述されたクエリは移植可能であり、すべての主要なデータベース サーバーで SQL にコンパイルできます。

その機能はネイティブ SQL ステートメントに似ており、完全にオブジェクト指向であり、テーブル名やテーブル属性ではなく、クラス名と属性を通じてアクセスされます。

JPQL を使用するには、SQL ステートメントを HQL ステートメントと同様に変更する必要があります。 SQL はデータベースをクエリしますが、JPQL はオブジェクトと属性をクエリするため、構文が多少異なります。 JPQL で記述できないクエリの場合は、ネイティブ SQL で記述する方が便利です。

次に例を示します。構文の違いに注意してください。

JPQLクエリ

@永続コンテキスト
保護された EntityManager em;

パブリックリスト<ビデオ> findVideoList1() {
  文字列 hql = "ビデオから ID 降順で並べ替え";
  クエリ query = em.createQuery(hql);
  リスト<ビデオ> 結果 = query.getResultList();
  em.clear();
  結果を返します。
}

SQLクエリ

過去7日間のデータを照会する

パブリックリスト<ビデオ> findVideoList2() {
  リスト<ビデオ> 結果 = (リスト<ビデオ>) em.createNativeQuery
    ("select * from db_video where date_sub(curdate(), interval 6 day) <= date(date) order by date desc", Video.class)
    .getResultList();
  結果を返します。
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JPAはJPQL文を使用して追加、削除、変更、クエリを実行します。
  • mysql5.7.19 解凍版の詳細なインストール チュートリアル (純粋なクラックされた中国語版 SQLYog を使用)
  • 純粋なPythonで開発されたNoSQLデータベースCodernityDBの紹介と使用例
  • 純粋な IP データを MySQL にインポートする方法を 3 つのステップで詳しく説明します。
  • 純粋な CSS+DIV で書かれた美しい Flash スライドショーと SQL タグ チュートリアル!
  • SQL 削除ステートメント DROP、TRUNCATE、DELETE の違い
  • Mybatis-plus 構成コンソールはパラメータを含む完全な SQL ステートメントを出力します。
  • IDEA に MyBatis Log Plugin プラグインをインストールし、mybatis SQL ステートメントを実行します (推奨)

<<:  React スキャフォールディングのパスエイリアスを設定する方法

>>:  事例を通してLinux NFSの仕組みを詳細に分析

推薦する

MySQLデータ移行方法とツールの分析

この記事は主にMySQLデータ移行方法とツールの分析を紹介します。サンプルコードを通じて詳細に紹介さ...

CSS リスト モデルでのマーカー タグの使用

この記事では主に、 list-itemの下にある::master疑似要素、 list-style-i...

JavaScript で localStorage を使用する方法

.NET の世界に参入したい開発者であれば、何が可能なのかを知る必要があります。 .NET Fram...

ウェブページにコンテンツが多すぎる場合に、下から上へ素早く戻る方法

Web フロントエンド開発では、ページに多くの記事を表示することが避けられません。記事の最後にあるク...

タグが新しいページを開くかどうかという問題。主要ウェブサイトの開設状況をまとめました

a タグが新しいページを開くかどうか: (1)百度百科事典:ヘッダーが異なる場合は新しいページが開き...

JS を使用して航空機戦争の小さなゲームを実装する

この記事の例では、参考のために航空機戦争ゲームを実装するためのJSの具体的なコードを共有しています。...

16進カラーコード(完全版)

赤とピンク、およびそれらの 16 進コード。 #990033 #CC6699 #FF6699 #FF...

Ubuntu 16.04 に nvidia ドライバー + CUDA + cuDNN をインストールする詳細なチュートリアル

準備1. GPUがCUDAをサポートしているかどうかを確認するlspci | grep -i nvi...

インラインブロックを使用した複数のdiv間の間隔はプログラミング方法とは異なります

inline-block について学習しているときに、境界線と inline-block を持つ複数...

MySQL のスケジュールされた完全なデータベースバックアップ

目次1. MySQLデータのバックアップ1.1、データをバックアップするためのmysqldumpコマ...

最新の MySQL 5.7.23 のインストールと設定のグラフィックチュートリアル

2018 年の最新 MySQL 5.7 の詳細なインストールと設定は 4 つのステップに分かれており...

デザイン理論:テキスト表現とユーザビリティ

<br />テキストデザインでは、通常、テキストのレイアウト、つまりテキストをより美しく...

Windows に mysql5.7.28 winx64 の解凍バージョンをインストールするための詳細なチュートリアル

目次1. 解凍する2. データフォルダを作成する3. MySQLに環境変数を追加する3.1 コントロ...

Linux Cron によるパラメータ付き PHP コードのスケジュール実行

1. 引き続き PHP スクリプトを使用して実行します。コマンドラインに入力: php /home/...