Hint
This article is generated by AI translation.
Array Type Handlers
Array type handlers are located in the net.hasor.dbvisitor.types.handler.array package.
| Handler | Java Type | Purpose |
|---|---|---|
ArrayTypeHandler | java.sql.Array | General array handling, using getArray/setArray for reading and writing |
PgArrayTypeHandler | java.sql.Array | PostgreSQL array type specific handling |
PgVectorTypeHandler | List<Float> | PostgreSQL pgvector vector type handling |
PgVectorTypeHandler
PgVectorTypeHandler handles the PostgreSQL pgvector extension's vector type, converting between List<Float> and pgvector's text format [1.0,2.0,3.0].
Usage example
public class EmbeddingEntity {
@Column(typeHandler = PgVectorTypeHandler.class)
private List<Float> embedding;
}
Array Element Type Mapping
When creating a java.sql.Array type, you need to specify the element type, for example:
Array array = ps.getConnection().createArrayOf(typeName, ...);
The JDBC types corresponding to the Java types of array elements are shown in the table below:
| Element Java type | JDBC type |
|---|---|
| boolean.class | JDBCType.BOOLEAN |
| Boolean.class | JDBCType.BOOLEAN |
| byte.class | JDBCType.TINYINT |
| Byte.class | JDBCType.TINYINT |
| short.class | JDBCType.SMALLINT |
| Short.class | JDBCType.SMALLINT |
| int.class | JDBCType.INTEGER |
| Integer.class | JDBCType.INTEGER |
| long.class | JDBCType.BIGINT |
| Long.class | JDBCType.BIGINT |
| float.class | JDBCType.FLOAT |
| Float.class | JDBCType.FLOAT |
| double.class | JDBCType.DOUBLE |
| Double.class | JDBCType.DOUBLE |
| Calendar.class | JDBCType.CHAR |
| char.class | JDBCType.CHAR |
| java.util.Date.class | JDBCType.TIMESTAMP |
| java.sql.Date.class | JDBCType.TIMESTAMP |
| java.sql.Timestamp.class | JDBCType.TIMESTAMP |
| java.sql.Time.class | JDBCType.TIMESTAMP |
| Instant.class | JDBCType.TIMESTAMP |
| LocalDateTime.class | JDBCType.TIMESTAMP |
| LocalDate.class | JDBCType.TIMESTAMP |
| LocalTime.class | JDBCType.TIMESTAMP |
| ZonedDateTime.class | JDBCType.TIMESTAMP |
| JapaneseDate.class | JDBCType.TIMESTAMP |
| YearMonth.class | JDBCType.TIMESTAMP |
| Year.class | JDBCType.TIMESTAMP |
| Month.class | JDBCType.TIMESTAMP |
| OffsetDateTime.class | JDBCType.TIMESTAMP |
| OffsetTime.class | JDBCType.TIMESTAMP |
| String.class | JDBCType.VARCHAR |
| BigInteger.class | JDBCType.BIGINT |
| BigDecimal.class | JDBCType.NUMERIC |
| Byte[].class | JDBCType.VARBINARY |
| byte[].class | JDBCType.VARBINARY |
| URL.class | JDBCType.DATALINK |
| URI.class | JDBCType.DATALINK |