なぜjavax.money.CurrencyUnit
はjava.io.Serializable
から延長されていませんか?そのサブタイプのすべてのjava.io.Serializable
を実装し、あなたのHibernateマッピングでそれを使用したい場合はその上に、その後、FindBugsのは(かなり正確に)あなたを停止しますので:javax.money.CurrencyUnitがSerializableでないのはなぜですか?
[INFO] Class com.mycompany.SiteEntity defines non-transient non-serializable instance field defaultCurrency [com.mycompany.SiteEntity] In SiteEntity.java
[INFO] Class com.mycompany.SiteEntity defines non-transient non-serializable instance field supportedCurrencies [com.mycompany.SiteEntity] In SiteEntity.java
[INFO] Class com.mycompany.UserEntity defines non-transient non-serializable instance field sessionCurrency [com.mycompany.UserEntity] In UserEntity.java
これは1が使用しなければならないことを意味していますクラスJDKCurrencyAdapter
は、ハイバーネイトマッピングですか?私はむしろインターフェイスを使用する方が好きですが、可能でない場合はクラスを使用します。
おそらくCurrencyUnitはインタフェースであり、すでに別のインタフェースを拡張しているため、別のインタフェースを複数拡張することはできません。カスタムクラスでそれらをラップし、Serializableを実装することができます。 – SnakeDoc
特に、「CurrencyUnit」は、すべての実装*がシリアライズ可能である必要があることを明記しているため(シリアル化を提供するプラットフォームで)* https://github.com/JavaMoney/jsr354-api/pullsでこれを聞くことができます – wero
@wero * implementations *はシリアライズ可能でなければなりません。あなたはそれがすべてのサブタイプが実際にはSerializableを拡張(または実装)することをOPが指摘しているので、OPのカスタムクラスもSerializableを実装する必要があります。 – SnakeDoc