Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Wrong column type when use wildcard with @Measurement

Abierto
#609 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
java
Área
databases

Línea de trabajo

Comienza reproduciendo el problema con el ejemplo de @Measurement, @Column, InfluxDbDefaultPoint e InfluxDbTemperaturePoint mediante writeMeasurement. Rastrea cómo se clasifica el valor del campo genérico wildcard antes de la serialización y, a continuación, verifica que 30.0 se escriba como un campo numérico en lugar de como una cadena, sin romper el caso sin wildcard.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Steps to reproduce:

@Getter
public abstract class InfluxDbDefaultPoint<T> {

    @Column(timestamp = true)
    private final Instant time;
    @Column(tag = true)
    private final Long deviceId;
    @Column
    private final T value;

    public InfluxDbDefaultPoint(final Long deviceId, final T value) {
        this.time = Instant.now();
        this.deviceId = deviceId;
        this.value = value;
    }
}

@Measurement(name = "temperature")
public class InfluxDbTemperaturePoint extends InfluxDbDefaultPoint<Double> {

    public InfluxDbTemperaturePoint(Long deviceId, Double value) {
        super(deviceId, value);
    }
}

public static void main(String[] args) {
        final InfluxDBClient database = InfluxDBClientFactory.create("http://localhost:8200","<token>".toCharArray(),"<org>","<bucket>");
        database.getWriteApiBlocking().writeMeasurement(WritePrecision.S, new InfluxDbTemperaturePoint(0L,30.0));
    }

When I try to send such a prepared model to influxdb, I get an error: HTTP status code: 422; Message: failure writing points to database: partial write: field type conflict: input field "value" on measurement "temperature" is type string, already exists as type float dropped=1.

Previously I had an InfluxDbTemperaturePoint object without wildcard and it worked fine - it saved double

Expected behavior:
It should save the value 30.0 as float/dobule.

Actual behavior:
It tries to save the value 30.0 as a string.

Specifications:

  • Client Version: 6.9.0
  • InfluxDB Version: v2.7.1
  • JDK Version: Java(TM) SE Runtime Environment (build 19.0.2+7-44)
  • Platform: Windows
Lenguaje dominante
Java
Estrellas
477
Forks
129
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

  • Sin Dockerfile ni archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de influxdata/influxdb-client-java

Todos los issues de influxdata/influxdb-client-java

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.