JPA および Hibernate を使用した計算プロパティのマッピング: ガイド
多くの Java Bean には、データベース テーブルで明示的に表現されていないプロパティがあります。これらのプロパティは、親エンティティに関連付けられた子エンティティの数などの計算値である場合があります。
従来、このようなプロパティは HQL または Criteria API を使用して設定されてきました。ただし、Hibernate の @Formula アノテーションは、より効率的で宣言的なアプローチを提供します。
@Formula アノテーションの使用
@Formula アノテーションを使用すると、SQL フラグメントを指定できます。プロパティの値を計算するもの:
@Formula("PRICE*1.155") private float finalPrice;
この例ではたとえば、finalPrice プロパティは、PRICE 列に 1.155 を乗算して計算されます。
複雑なクエリと派生テーブル
@Formula は、複数のテーブルが関与する複雑なクエリも処理できます。
@Formula("(select min(o.creation_date) from Orders o where o.customer_id = id)") private Date firstOrderDate;
firstOrderDate プロパティは、現在のエンティティと同じ ID を持つ顧客の Orders テーブルからの最小作成日。
パフォーマンスと移植性に関する考慮事項
@Formula は SQL を使用して値を計算します。これを過度に使用すると、パフォーマンスに影響を与える可能性があります。さらに、@Formula アノテーションで使用される SQL 構文は、異なるデータベース ベンダー間で移植できない場合があります。
詳細については、次のリソースを参照してください。
以上が@Formula を使用して JPA と Hibernate で計算されたプロパティをマッピングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。