Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

75
Views
No puedo obtener datos de mongoDB mientras uso BigDecimal dentro de la consulta
 BigDecimal log_max=new BigDecimal(21.11617279052734); BigDecimal log_min=new BigDecimal(21.01617279052734); BigDecimal lat_max=new BigDecimal(61.43435454343454); BigDecimal lat_min=new BigDecimal(61.03435454343454); String col_name="latitude"; String col_name2="longitude"; List<BasicDBObject> criteria=new ArrayList<BasicDBObject>(); BasicDBObject searchQuery1 =new BasicDBObject(col_name, new BasicDBObject("$gte", lat_min).append("$lte", lat_max)); criteria.add(searchQuery1); BasicDBObject searchQuery2=new BasicDBObject(col_name2, new BasicDBObject("$gte", log_min).append("$lte", log_max)); criteria.add(searchQuery2); DBCursor cursor = coll.find(query); while (cursor.hasNext()) { DBObject cursorObj = cursor.next(); LOGGER.info("Collection successf"); Object temp1 = cursorObj.get("longitude"); BigDecimal longitude = new BigDecimal(temp1.toString()); System.out.println("longitude ::::"+longitude); Object temp2 =cursorObj.get("latitude"); BigDecimal latitude = new BigDecimal(temp2.toString()); LOGGER.info("done getting "); } }

Recibo java.lang.IllegalArgumentException: no se puede serializar la clase java.math.BigDecimal

¿Alguien sabe cuál será la alternativa de BigDecimal...?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Revisando algunos de los materiales disponibles en Internet, intentaré proporcionar una respuesta concisa a su pregunta.

En primer lugar, BigDecimal no es compatible de forma nativa con MongoDB, por lo que no puede usar BigDecimal directamente. Entonces, ¿cómo lidiar con eso?

Bueno, hay alternativas.

  1. Convierta su valor BigDecimal a String y guárdelo en la base de datos. Si está utilizando spring-data se solucionará. Pero el almacenamiento como String no funciona como se esperaba y puede generar resultados inesperados en las consultas de agregación.
  2. Si cree que usar Double será suficiente, puede usar Double o si desea usar BigDecimal , puede escribir su convertidor personalizado en spring-data-mongodb , que convertirá su BigDecimal a Double cuando se almacene en la base de datos y Double a BigDecimal al leer de él. Puede consultar esta respuesta para ver un ejemplo.
  3. Puede escribir su tipo personalizado y usarlo. Puedes comprobar esto y esto .
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!