Comment puis-je carte un BigDecimal en veille prolongée afin que je revienne à la même échelle que j'ai mis dans?

En Java, new BigDecimal("1.0") != new BigDecimal("1.00") c'est à dire, l'échelle questions.

Ce n'est apparemment pas le cas pour Hibernate/SQL Server, cependant. Si je l'ai mis à l'échelle sur un BigDecimal à une valeur particulière, enregistrez le BigDecimal à la base de données via Hibernate et puis re-gonfler mon objet, je serai de retour un BigDecimal avec une échelle différente.

Par exemple, une valeur de 1,00 est de retour en tant que 1.000000, je suppose parce que nous sommes cartographie BigDecimals à une colonne définie comme NUMERIC(19,6). Je ne peux pas il suffit de définir la colonne de l'échelle que j'ai besoin de stocker à la fois au Dollar et au Yen valeurs (par exemple) dans la même colonne. Nous avons besoin de représenter l'BigDecimals que les types numériques dans la base de données pour le bénéfice de l'externe, les outils de reporting.

Existe-t-il une Hibernate UserType les cartes BigDecimal "correctement", ou dois-je écrire mon propre?