@Override @SuppressWarnings("unchecked") public ValueExtractor getExtractor(JavaTypeDescriptor javaTypeDescriptor) { if (Serializable.class.isAssignableFrom(javaTypeDescriptor.getJavaTypeClass())) { return VarbinaryTypeDescriptor.INSTANCE.getExtractor(javaTypeDescriptor); } return new BasicExtractor(javaTypeDescriptor, this) { @Override protected Object doExtract(ResultSet rs, String name, WrapperOptions options) throws SQLException { return rs.getObject(name); } @Override protected Object doExtract(CallableStatement statement, int index, WrapperOptions options) throws SQLException { return statement.getObject(index); } @Override protected Object doExtract(CallableStatement statement, String name, WrapperOptions options) throws SQLException { return statement.getObject(name); } }; }