ホームページ > Java > &#&チュートリアル > HQL または Criteria API を使用せずに、JPA と Hibernate で計算されたプロパティをマッピングするにはどうすればよいですか?

HQL または Criteria API を使用せずに、JPA と Hibernate で計算されたプロパティをマッピングするにはどうすればよいですか?

DDD
リリース: 2024-12-03 01:44:10
オリジナル
487 人が閲覧しました

How Can I Map Calculated Properties in JPA and Hibernate Without Using HQL or Criteria API?

JPA と Hibernate を使用した計算プロパティのマッピング

背景:

Java があるとします。データベース列に直接マップされていないプロパティを持つ Bean。代わりに、COUNT() などの操作を使用してデータベースによって計算されるようにします。 HQL や Criteria API に頼らずにこのプロパティをマップする方法を探しています。

Hibernate の @Formula を使用した解決策:

JPA は派生プロパティを直接サポートしていません。ただし、Hibernate は解決策として @Formula アノテーションを提供します。このアノテーションを使用すると、プロパティの式を指定できます。これには SQL フラグメントや複雑なクエリを含めることができます。

@Formula("COUNT(childColumns)")
private int childCount;
ログイン後にコピー

式の例:

  • 計算付きの価格マークアップ:
@Formula("PRICE*1.155")
private float finalPrice;
ログイン後にコピー
  • 顧客の最低注文日の検索:
@Formula("(select min(o.creation_date) from Orders o where o.customer_id = id)")
private Date firstOrderDate;
ログイン後にコピー

@Formula の利点:

  • 追加せずに計算されたプロパティをマッピングできますHQL または Criteria API クエリ。
  • 不必要なデータベースの往復を回避することでパフォーマンスを向上できます。
  • 異なるデータベース プラットフォーム間での移植性をサポートします。

追加リソース:

  • [Hibernate 派生プロパティ - パフォーマンスと移植性](https://thoughts-on-java.org/hibernate-derived-properties-performance-and-portability/)
  • [式に関する Hibernate Core ドキュメントElements](https://docs.jboss.org/hibernate/core/4.3/manual/en-US/html/ch05.html#formula-support)
  • [Hibernate Annotations ドキュメント式](https://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/entity.html#d0e735)

以上がHQL または Criteria API を使用せずに、JPA と Hibernate で計算されたプロパティをマッピングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート