私はこれを数時間続けてきましたが、まだこれを手に入れた人はいませんでした。私はMongoにBigDecimalオブジェクトを永続化したいが、MongoはBigDecimalをネイティブにサポートしていない。私は春の文書hereを追跡しましたが運はありません。SpringでカスタムMongoフォーマッタを設定するにはどうすればよいですか?
私は、SpringがMongoにカスタムのコンバータクラスを注入していないことから、dbに書き込んでいることを知りました。ここに私がやっていることだ。
私のApplicationContext-services.xmlの ...
が<!-- Factory bean that creates the Mongo instance -->
<mongo:mongo
host="localhost"
port="1234" />
<mongo:db-factory
dbname="solar"
mongo-ref="mongo"/>
<mongo:mapping-converter>
<mongo:custom-converters>
<mongo:converter>
<bean class="com.mine.BigDecimalReadConverter"/>
</mongo:converter>
<mongo:converter>
<bean class="com.mine..BigDecimalWriteConverter"/>
</mongo:converter>
</mongo:custom-converters>
</mongo:mapping-converter>
<!-- Use this post processor to translate any MongoExceptions thrown in @Repository annotated classes -->
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
<bean id="mongoDbTest"
class="com.mine.MongoDbTest">
<property name="mongoTemplate">
<ref local="mongoTemplate" />
</property>
</bean>
私は取得していますエラーは次のとおりです。
java.lang.IllegalArgumentException: Multiple constructors with arguments found in class java.math.BigDecimal! Annotate one with @PreferedConstructor explicitly to select it to be used in persistence operations.
at org.springframework.data.mapping.PreferredConstructorDiscoverer.<init>(PreferredConstructorDiscoverer.java:81)
あなたは春・データ内のユニットテストやuが使用されているモジュールを見て? – chrislovecnm
私は持っていません。私は、ドキュメントが示唆しているようにそれを設定しましたが、運はありません。 – emilebaizel
どのバージョンのSpringデータを使用していますか? –