Class PostgresPlugin

java.lang.Object
org.jdbi.v3.core.spi.JdbiPlugin.Singleton
org.jdbi.v3.postgres.PostgresPlugin
All Implemented Interfaces:
JdbiPlugin

public class PostgresPlugin extends JdbiPlugin.Singleton
Postgres plugin. Adds support for binding and mapping the following data types:

Also sets up SQL array support for the following types:

A note about the mapping between the Postgres interval type and the Java Period and Duration types: The Java library authors are much more strict about the temporal amounts representable by Periods and Durations than Postgres is with its interval type. The argument factories and column mapper factories implemented in this package respect this spirit of unambiguous strictness. Consequently:

  • All Periods can be mapped to intervals.
  • Not all Durations can be mapped to intervals.
  • Not all intervals can be mapped to Periods.
  • Not all intervals can be mapped to Durations.
For more specific detail, see the caveats in the documentation for DurationArgumentFactory, PeriodColumnMapperFactory, and DurationColumnMapperFactory.

In addition, some potentially unexpected implicit conversions can occur by virtue of the Postgres server logic. For example, at the time of writing, storing a Period of -3 years, 2 months, and -1 days results in an interval (and consequently, a column-mapped Period) of -2 years, -10 months, and -1 days.