Details
Description
We are using BigDecimals in our application quite often for calculating. We store our values typically as java primitives (int, long/double, float) and using the DocumentObjectBinder (annotations based document object binding).
Unfortunately, we must have exactly the type given in solr schema for type used as field/accessor. We found out, that the following patch would allow us to define BigDecimal as type as we just use BigDecimal as a type in our mapped POJO. This would help to make the mapping more powerful without loosing anything.
----------
$ svn diff Downloads/solr/solr/solrj/src/java/org/apache/solr/client/solrj/beans/DocumentObjectBinder.java
Index: Downloads/solr/solr/solrj/src/java/org/apache/solr/client/solrj/beans/DocumentObjectBinder.java
===================================================================
— Downloads/solr/solr/solrj/src/java/org/apache/solr/client/solrj/beans/DocumentObjectBinder.java (revision 1626087)
+++ Downloads/solr/solr/solrj/src/java/org/apache/solr/client/solrj/beans/DocumentObjectBinder.java (working copy)
@@ -359,6 +359,9 @@
if (v != null && type == ByteBuffer.class && v.getClass() == byte[].class)
+ if (type == java.math.BigDecimal.class)
{ + v = BigDecimal.valueOf(v): + } try {
if (field != null) {
field.set(obj, v);