0

この本では、 :Java Persistence with Hibernateを使用するための次のユースケースについて説明しています。UserType

金額をDBに保存する必要がありますが、ユーザーは任意の通貨を使用できます。そのため、DBに保存する前に金額をUSDに「正規化」し、保存する前にUserType金額をUSDに変換し、DBから読み取った後、ユーザーに返す前にユーザー指定の通貨に変換する実装を使用します。

これを行うには、他に2つのアプローチが考えられます。

1)DBからの保存/読み取りにHibernateのフィールドアクセスを使用し、変換にパブリックゲッター/セッターを使用します。

2)USDを使用するHibernate用のプライベートゲッター/セッターと、ユーザーに必要な変換用のパブリックゲッター/セッターのペアを作成します。

これらのアプローチは、使用する場合とどのように比較されUserTypeますか?他に利点はありUserTypeますか?

4

2 に答える 2

1

本の例は通常貧弱です。本自体が悪いわけではありません。たとえば、Java Persistence with Hibernate は Hibernate に関する最高の本だと思います。ただし、例は簡潔で自己完結型でなければならないため、現実世界から少し離れています。

私の記憶が正しければ、この例は UserType の使用方法を示すためだけのものであり、多くの機能 (特に「読み返す」部分) を示しています。ユースケース自体は重要ではありません。したがって、私は彼らが提示した使用例を完全に抽象化します。

この特定のシナリオで、データベースに通貨を保存する必要がある場合は、Joda Moneyを参照することをお勧めします。すぐに使用できる JPA ユーザー タイプがいくつか用意されているため、心配する必要はありません。はい、通貨間のリアルタイム変換は、JPA エンティティに保持したいものではありません。それを行うには、EJB サービスが必要です。

于 2012-08-21T08:07:58.583 に答える