2017-12-09 27 views
1

JSR 354 Money APIを自分のアプリケーションに組み込むことに興味があり、JPAでEmbeddableとしてMoneyAmountをマップできるようにしたいと考えていますが、Monetaの引数なしコンストラクタ実装クラスはプライベートであり、JPA(または少なくともHibernate)はそれを保護する必要があります。金額のJPAマッピング

プロテクトされたコンストラクタを提供するために、このクラスを拡張しようとしましたが、クラスは最終的なものなので、どちらもできません。

まず、仮定:JPAとの相互運用性は、このJSR

に重要であり、私がお勧めしたい私はそれをしたいかもしれないだけではないよ

  1. をして
  2. この目的のために保護されたコンストラクタを提供する実装を必要とするように拡張する仕様?

    第2に、Moneta RIチームは、デフォルトのargコンストラクタの保護されたレベルへのアクセスを緩めることを検討しますか?とにかくクラスが最終的なものであれば、悪影響はありませんか?

    第3に、この変更にはしばらく時間がかかる場合がありますが、その間に誰かが優雅な回避策を考えることができますか?

+0

お金の種類を使用する最良の方法は、単純なjpa属性変換器 – gtosto

+0

を実装することですが、操作の実行時には間違った間接指定になります。 ... – TheArchitect

答えて

0

Jadira User Typesにはsupport of Moneta typesが含まれている可能性があります。

+0

PersistentMoneyAmountAndCurrencyはMonetaryAmountを実装していないようですので、実装可能なラッピングオプションと同じです(この場合、私の側では簡単ですが、操作を実行するときに醜い間接指示をたくさん作成します。エンティティを取得するには、次のように入力します。 – TheArchitect