@Override public void addDataType(String type, String name) { try { addDataType(type, Class.forName(name).asSubclass(PGobject.class)); } catch (Exception e) { throw new RuntimeException("Cannot register new type: " + e); } }
private void initObjectTypes(Properties info) throws SQLException { addDataType("box", org.postgresql.geometric.PGbox.class); addDataType("circle", org.postgresql.geometric.PGcircle.class); addDataType("line", org.postgresql.geometric.PGline.class); addDataType("lseg", org.postgresql.geometric.PGlseg.class); addDataType("path", org.postgresql.geometric.PGpath.class); addDataType("point", org.postgresql.geometric.PGpoint.class); addDataType("polygon", org.postgresql.geometric.PGpolygon.class); addDataType("money", org.postgresql.util.PGmoney.class); addDataType("interval", org.postgresql.util.PGInterval.class); addDataType(typeName, klass.asSubclass(PGobject.class));
@Override public JdbcConnection getJdbcConnection(final boolean autoCommit) { final DataSource dataSource = getDataSource(); final Connection connection = JdbcUtils.getConnection(dataSource); try { final PgConnection pgConnection = connection.unwrap(PgConnection.class); pgConnection.addDataType("geometry", PostgreSQLGeometryWrapper.class); pgConnection.addDataType("box2d", PostgreSQLBoundingBoxWrapper.class); pgConnection.addDataType("box3d", PostgreSQLBoundingBoxWrapper.class); pgConnection.addDataType("tid", PostgreSQLTidWrapper.class); } catch (final SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return new JdbcConnection(connection, dataSource, autoCommit); }