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 8.0 の新機能: ハッシュ結合

MySQL 開発チームは、2019 年 10 月 14 日に MySQL 8.0.18 GA バージ...

MySqlデータベースの基礎知識のまとめ

目次基本的なデータベース操作2) データベースを表示する3) データベースを選択する4) データベー...

Vue3 の動的コンポーネントはどのように機能しますか?

目次1. コンポーネントの登録1.1 グローバル登録1.2 グローバルコンポーネントの登録プロセス1...

IDEA を MYSQL データベースに接続するための構成時に失敗する問題の解決策

この記事では、主に、IDEA を MYSQL データベースに接続するための構成時に失敗する問題の解決...

UbuntuでOpenCVをコンパイルしてインストールする方法

opencv2 の簡単なインストール: conda インストール --channel https:/...

JavaScript関数の使い方の詳細な説明

目次1. 関数を宣言する2. 関数の呼び出し3. 関数パラメータ4. 関数の戻り値5. 議論の使用6...

回転するフリップカードアニメーションの効果を実現するCSS

回転フリップ効果の CSS アニメーション、具体的な内容は次のとおりです。 1. まず2つのボックス...

よく使われる HTML 形式のタグ_Powernode Java Academy

1. タイトルHTML では、<h1></h1> から <h6>...

MySQLデータベースは何をするのか

MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...

Ubuntu 15.04 は MySQL リモート ポート 3306 を開きます

Ubuntu 15.04 は MySQL リモート ポート 3306 を開きます。以下の操作はすべて...

Docker を使用してスタンドアロン Pulsar とクラスター化された Redis をデプロイする方法 (開発アーティファクト)

目次1. はじめに: 2. ドッカー: 1 カスタムネットワーク2 展開を開始する3 ネットワークを...

Vueはマルチタブコンポーネントを実装します

効果を直接確認するために、リロード、左を閉じる、右を閉じる、その他の機能を閉じるなどの右クリック メ...

MySQL で準備、実行、割り当て解除ステートメントを使用するチュートリアル

序文MySQLでは、準備、実行、割り当て解除を正式にはPREPARE STATEMENTと呼びます。...

CentOS 7にMySQLをインストールする詳細な手順

CentOS7では、MySQLをインストールすると、MariaDBもデフォルトでインストールされます...

Ubuntu で FTP サーバーを構築する方法の詳細な説明 (成功保証)

1. 今日の午後、コースの要件により、Ubuntu で FTP サーバーを設定する実験を行う必要が...