Converter
Registering a Spring Converter
The ArangoConfiguration
provides a convenient way to register Spring Converter
by implementing the method customConverters()
.
Examples
@Configuration
public class MyConfiguration implements ArangoConfiguration {
@Override
protected Collection<Converter<?, ?>> customConverters() {
return Arrays.asList(new MyConverter());
}
}
Implementing a Spring Converter
A Converter
is used for reading if the source type is of type VPackSlice
or DBDocumentEntity
.
A Converter
is used for writing if the target type is of type VPackSlice
, DBDocumentEntity
, BigInteger
, BigDecimal
, java.sql.Date
, java.sql.Timestamp
, Instant
, LocalDate
, LocalDateTime
, OffsetDateTime
, ZonedDateTime
, Boolean
, Short
, Integer
, Byte
, Float
, Double
, Character
, String
, Date
, Class
, Enum
, boolean[]
, long[]
, short[]
, int[]
, byte[]
, float[]
, double[]
or char[]
.
Examples
public class MyConverter implements Converter<MyObject, VPackSlice> {
@Override
public VPackSlice convert(final MyObject source) {
VPackBuilder builder = new VPackBuilder();
// map fields of MyObject to builder
return builder.slice();
}
}
For performance reasons VPackSlice
should always be used within a converter. If your object is too complex, you can also use DBDocumentEntity
to simplify the mapping.