Hibernate 条件クエリから列を除外するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-28 04:42:30
オリジナル
141 人が閲覧しました

How Can I Exclude Columns from a Hibernate Criteria Query?

特定の列を選択するための Hibernate 基準クエリ

Hibernate では、デフォルトで基準クエリはデータベースからすべての列を取得します。ただし、場合によっては、パフォーマンスを向上させたり、特定の要件を満たすために、特定の列を除外する必要がある場合があります。

投影を使用して列を除外する

特定の列をテーブルから除外するには基準クエリでは、Projections.projectionList() メソッドを使用できます。このメソッドを使用すると、プロジェクション内の必要な列のみを指定できます。

例:

「User」テーブルからすべての列を取得するクエリがあるとします。クエリから「年齢」列を除外するには、次のコードを使用できます。

<code class="java">Criteria cr = session.createCriteria(User.class)
    .setProjection(Projections.projectionList()
      .add(Projections.property("id"), "id")
      .add(Projections.property("name"), "name"))
    .setResultTransformer(Transformers.aliasToBean(User.class));</code>
ログイン後にコピー

クエリ エラーの処理

射影を使用すると、エラーが発生する可能性があります。 where 句またはクエリの他の部分で除外された列を参照する場合。この問題を解決するには、投影された列に割り当てられたエイリアスを明示的に指定できます。

例:

<code class="java">Criteria cr = session.createCriteria(User.class)
    .setProjection(Projections.projectionList()
      .add(Projections.property("id"), "user_id")
      .add(Projections.property("name"), "user_name"))
    .setResultTransformer(Transformers.aliasToBean(User.class))
    .add(Restrictions.gt("user_id", 10));</code>
ログイン後にコピー

このクエリでは、「id」と「 name」列が投影され、それぞれ別名「user_id」と「user_name」に割り当てられます。その後、where 句はこれらのエイリアスを参照し、元の列名を参照することによって発生する可能性のあるエラーを回避します。

以上がHibernate 条件クエリから列を除外するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!