みんな!
私は@OneToOne
または@OneToMany
です。
表はproduction
であり、表はprice_list
です。
production
のテーブルにはprice_list
のテーブルにある価格があります。
しかし、price_list
は、1つのプロダクションの履歴価格と現在の価格があります。これは、多くのプロダクションがマップできることを意味しますprice_list
レコードです。現在の価格は、フィールドstatus
と等しい1の数字です。 私の質問は、すぐに現在の価格を見つける方法です@OneToOne
または@OneToMany
ありがとう!JPA使用方法の決定方法@OneToOneまたは@OneToMany
答えて
を行うには、いくつかの方法は、あなたが
status = 1
でのみprice_list
レコードを含むデータベース内のビューを(例えばcurrent_price
)、作成することがあります。エンティティでは、別のエンティティとしてマップできます。- 上記と同様
、あなたの
price_list
は素敵なIDを持っている場合は、関係として表示を行うことができるので、あなたが使用して気にしない場合は、別の関係 と同じ
Price
エンティティにマッピングすることができます休止状態固有の機能それはだけではなく、実体の一般的な動作のいくつかの特定のクエリのために必要とされている場合は、あなたが@Where
を使用することができ、あなたは、単に
select new ProductCurrentPrice(product, price) from Product product left join product.priceList price where product = ... and price.status = ACTIVE
のようなクエリを有することができます
製品の価格の数が膨大ではない場合、あなたは、単に全体のリストを取得し、エンティティでフィルタリングを行うことがあります。私は他の方法であると考えて
class Product { @OneToMany List<Price> prices; Optional<Price> getCurrentPrice() { prices.stream().filter(p->p.status==ACTIVE).findFirst(); } }
を。
ありがとうございます。参考になりました。エンティティにマップを表示すると、エンティティを更新できますか? –
あなたが取っている方法(1または2)に応じて。 1の場合は、使用しているDBMSによっても異なります。 Oracleはうまくいくはずです。他のDBMSについてよくわからない –
もう一度ありがとう。私はあなたのsuggesionを取る(3..5)。あなたは香港にいますか?あなたは中国語を話せますか? –
@OneToManyを使用し、ビューまたはストアドプロシージャのクエリで現在の価格を取得するためのステータスを渡します。
ありがとうございます。ステータスをエンティティに渡す方法は?あなたは私にサンプルを与えることができますか? –
これはあなたに不完全なエンティティを与えるでしょう、そして、私はHibernateがそれが不完全であることを知る方法がないと信じています。したがって、最初のレベルのキャッシュからのエンティティの引き続いての検索は常にあなたにその不完全なエンティティを与えます –
@AdrianShumあなたはそれを冬眠すべての価格のリストを提供します。私は(あなたの答えでも同じことを言及しても)クエリを言及しました。 –
- 1. springMvcでOnetoOneのhibernateアノテーションを使用する方法は?
- 2. カスケードなしで単方向のOneToMany JPA関係を定義する方法はありますか?
- 3. プロセスサイズの決定方法は?
- 4. JPA OneToOne依存
- 5. JPA @OneToMany
- 6. JPA JPQL IN句:JPAでIN句を使用する方法は?
- 7. JPA OneToMany双方向関係[EclipseLink-63]エラー
- 8. JPA HibernateはOneToManyフェッチ
- 9. コンポーネントスキャンを使用しないSpringデータJPAリポジトリの設定方法
- 10. DjangoのOneToManyとOneToOneの間の競合
- 11. カスタムOneToOne Hibernate/JPAアソシエーション
- 12. Hibernate | SpringデータJPA | @OneToOne
- 13. ベクトルの方向を決定する方法(またはその法線)
- 14. QtアプリケーションでOpenGLエンジンを使用する方法を決定する方法:ソフトウェアまたはハードウェア?
- 15. Hibernate注釈の使用方法@ManyToOneと@OneToManyの関連付け
- 16. JPA @OneToManyフェッチ空
- 17. JPA @OneToManyがマルチパートキー
- 18. JPA OneToManyリレーションシップメンテナンス
- 19. JPA - @OneToMany update
- 20. JPA @sequenceGenerate @OneToMany
- 21. JPA OneToMany&ManyToOne
- 22. JPA relation OneToMany
- 23. JPA CriteriaQuery OneToMany
- 24. JPA - OneToMany persist - EntityExistsException
- 25. JPA、OneToMany、ManyToOne
- 26. ハードウェアスレッド数の決定方法
- 27. グループタイプの決定方法
- 28. アカウントタイプの決定方法
- 29. TimeDateStampの決定方法
- 30. 最も効率的な方法は、クラスの使用は、XMLデシリアライズする方法を決定するために
履歴価格もあるので、 '@ OneToMany'が必要だとします。現在の賞金を得るには、クエリ 'findPirceByStatus(Long productId)'を使う必要があると思っています。 –