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:InetAddress(includingInet4AddressandInet6Address)LocalDateLocalTimeLocalDateTimeOffsetDateTimeDuration(see notes below)Period(see notes below)Map<String, String>(forHSTOREcolumns)UUIDInputStreamandReaderfromoidlarge object columns
The following qualified types have
Betasupport for binding and mapping:@MacAddr java.lang.String(for MACADDR columns)@HStore Map<String, String>(for HSTORE columns)
Also sets up SQL array support for the following types:
doublefloatintlongDoubleFloatIntegerLongStringUUID
A note about the mapping between the Postgres
intervaltype and the JavaPeriodandDurationtypes: The Java library authors are much more strict about the temporal amounts representable by Periods and Durations than Postgres is with itsintervaltype. The argument factories and column mapper factories implemented in this package respect this spirit of unambiguous strictness. Consequently:- All
Periods can be mapped tointervals. - Not all
Durations can be mapped tointervals. - Not all
intervals can be mapped toPeriods. - Not all
intervals can be mapped toDurations.
DurationArgumentFactory,PeriodColumnMapperFactory, andDurationColumnMapperFactory.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.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.jdbi.v3.core.spi.JdbiPlugin
JdbiPlugin.Singleton
-
-
Field Summary
Fields Modifier and Type Field Description private booleaninstallLegacy
-
Constructor Summary
Constructors Modifier Constructor Description PostgresPlugin()protectedPostgresPlugin(boolean installLegacy)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description HandlecustomizeHandle(Handle handle)Configure customizations for a new Handle instance.voidcustomizeJdbi(Jdbi jdbi)Configure customizations global to any object managed by this Jdbi.static PostgresPluginnoUnqualifiedHstoreBindings()Do not install the legacy (unqualified) bindings forHStoreArgumentFactoryandHStoreColumnMapper.-
Methods inherited from class org.jdbi.v3.core.spi.JdbiPlugin.Singleton
equals, hashCode
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jdbi.v3.core.spi.JdbiPlugin
customizeConnection
-
-
-
-
Method Detail
-
noUnqualifiedHstoreBindings
public static PostgresPlugin noUnqualifiedHstoreBindings()
Do not install the legacy (unqualified) bindings forHStoreArgumentFactoryandHStoreColumnMapper. When using the plugin returned by this factory method, any lookup for HStore specific arguments and column mappers must be qualified with theHStoreannotation.
-
customizeJdbi
public void customizeJdbi(Jdbi jdbi)
Description copied from interface:JdbiPluginConfigure customizations global to any object managed by this Jdbi. This method is invoked immediately when the plugin is installed.- Parameters:
jdbi- the jdbi to customize
-
customizeHandle
public Handle customizeHandle(Handle handle)
Description copied from interface:JdbiPluginConfigure customizations for a new Handle instance.- Parameters:
handle- the handle just created- Returns:
- the transformed handle
-
-