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の仕組みを詳細に分析

推薦する

Uniappがスライディングスコアリング効果を実現

この記事では、スライディングスコアリングを実装するためのuniappの具体的なコードを参考までに共有...

WeChatアプレットがシンプルな計算機機能を実装

この記事では、WeChatアプレットの計算機機能を実装するための具体的なコードを参考までに紹介します...

Nginx は gzip 圧縮に基づいてアクセス速度を向上します

1. nginx はなぜ gzip を使用するのですか? 1. 圧縮の役割:ページがgzipで圧縮さ...

MySQL DMLステートメントの使用に関する詳細な説明

序文:前回の記事では、注意深い学生であれば発見できたかもしれない DDL ステートメントの使用法を中...

Mysqlの自動増分IDについて知らないことがあるかもしれません

導入: MySQL を使用してテーブルを作成する場合、通常は自動インクリメント フィールド (AUT...

ソケット '/tmp/mysql.sock' 経由でローカル MySQL に接続できない解決策

エラーメッセージ:エラー 2002: ソケット '/tmp/mysql.sock' ...

Docker で MySQL サービスをデプロイする方法と、遭遇する落とし穴

最近、ポーターを学んでいます。こんなに強力なものがあったなんて、今まで知らなかった気がします。クラス...

MySQL クエリのソートとクエリ集計関数の使用法の分析

この記事では、例を使用して、MySQL クエリのソート関数とクエリ集計関数の使用方法を説明します。ご...

マインスイーパゲームを実装するための jQuery プラグイン (2)

この記事では、jQueryプラグインを使用してマインスイーパゲームを実装する2番目の記事を参考までに...

Vue は動的なプログレスバー効果を実現します

この記事では、動的なプログレスバー効果を実現するためのVueの具体的なコードを例として紹介します。具...

MySQL 5.7.17 zip インストールおよび設定チュートリアル MySQL 起動失敗の解決策

MySQL 5.7.17、現在最新バージョンのようです、ダウンロードアドレスここで、プラットフォーム...

MySQL で行を列に変換したり、列を行に変換したりする詳細な例

mysql 行から列へ、列から行へ難しい文章ではないので、詳しく説明はしません。文章を読むときは、一...

表には表示したい境界コードが表示されます

テーブルの共通プロパティ基本的な属性は、width (幅)、height (高さ)、border (...

Nginx ログ管理の概要

Nginx ログの説明アクセス ログを通じて、ユーザーの地理的起源、ジャンプ元、使用端末、特定の U...

MySQLのあいまいクエリインデックスの失敗の問題を解決するいくつかの方法

% ワイルドカードを使用すると、インデックス失敗の問題が発生することがよくあります。ここでは、lik...