Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

78
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda