influxdb-java
influxdb-java copied to clipboard
About Influx storage type conversion
hello!I'm having a problem I used influx version 1.X and see write point storage type:
@SuppressWarnings("checkstyle:finalparameters")
@Deprecated
public Builder field(final String field, Object value) {
if (value instanceof Number) {
if (value instanceof Byte) {
value = ((Byte) value).doubleValue();
} else if (value instanceof Short) {
value = ((Short) value).doubleValue();
} else if (value instanceof Integer) {
value = ((Integer) value).doubleValue();
} else if (value instanceof Long) {
value = ((Long) value).doubleValue();
} else if (value instanceof BigInteger) {
value = ((BigInteger) value).doubleValue();
}
}
fields.put(field, value);
return this;
}
so insert data , All data will be converted to Double, InfluxDBResultMapper entity type must be Double my dependency:
<dependency>
<groupId>org.influxdb</groupId>
<artifactId>influxdb-java</artifactId>
<version>2.22</version>
</dependency>
I want to use Mapper to convert to an entity Is there any other way I can use other types?
Hi @fishered, I'm not sure I understand the issue. Please see the relevant manual section, and let me know if it answers your question.
I'm sorry I didn't find what I was looking for, Currently my influx version is 1. X ,In influxdb-java:2.22 I found out: Builder field. If the type in my POJO is Float or BigDecimal, Converting to double will cause the problem of losing accuracy, So What should I do?
for Example : @Column(name="voltage") private Float voltage;
Because the store converts the Float to a Double, Accuracy is lost when fetched @eranl
@fishered, double has higher precision than float.