/** * Copy constructor. * * @param field Field to copy. */ public JdbcTypeField(JdbcTypeField field) { this(field.getDatabaseFieldType(), field.getDatabaseFieldName(), field.getJavaFieldType(), field.getJavaFieldName()); }
try { if (fieldVal != null) { if (field.getJavaFieldType() == UUID.class) { switch (field.getDatabaseFieldType()) { case Types.BINARY: else if (field.getJavaFieldType().isEnum()) { if (fieldVal instanceof Enum) { Enum val = (Enum)fieldVal;
Object colVal = transformer.getColumnValue(rs, colIdx, fld.getJavaFieldType());
getter = methodByName(cls, fldName); Method setter = methodByName(cls, "set" + mthName, jdbcFld.getJavaFieldType()); setter = methodByName(cls, fldName, jdbcFld.getJavaFieldType());
/** * Construct Java built in object from query result. * * @param typeName Type name. * @param fields Fields descriptors. * @param loadColIdxs Select query columns indexes. * @param rs ResultSet to take data from. * @return Constructed object. * @throws CacheLoaderException If failed to construct POJO. */ private Object buildBuiltinObject(String typeName, JdbcTypeField[] fields, Map<String, Integer> loadColIdxs, ResultSet rs) throws CacheLoaderException { JdbcTypeField field = fields[0]; try { Integer colIdx = columnIndex(loadColIdxs, field.getDatabaseFieldName()); return transformer.getColumnValue(rs, colIdx, field.getJavaFieldType()); } catch (SQLException e) { throw new CacheLoaderException("Failed to read object: [cls=" + typeName + ", prop=" + field + "]", e); } }
/** * Create data transfer object for given cache type metadata. * * @param jdbcType JDBC type. */ public VisorCacheJdbcType(JdbcType jdbcType) { keyType = jdbcType.getKeyType(); valType = jdbcType.getValueType(); dbSchema = jdbcType.getDatabaseSchema(); dbTbl = jdbcType.getDatabaseTable(); JdbcTypeField[] kFields = jdbcType.getKeyFields(); if (kFields != null) { keyFields = new ArrayList<>(kFields.length); for (JdbcTypeField fld : kFields) keyFields.add(new VisorCacheJdbcTypeField( fld.getDatabaseFieldName(), fld.getDatabaseFieldType(), fld.getDatabaseFieldName(), U.compact(fld.getJavaFieldType().getName()))); } JdbcTypeField[] vFields = jdbcType.getValueFields(); if (vFields != null) { valFields = new ArrayList<>(vFields.length); for (JdbcTypeField fld : vFields) valFields.add(new VisorCacheJdbcTypeField( fld.getDatabaseFieldName(), fld.getDatabaseFieldType(), fld.getDatabaseFieldName(), U.compact(fld.getJavaFieldType().getName()))); } }
/** * Construct binary object from query result. * * @param typeName Type name. * @param fields Fields descriptors. * @param loadColIdxs Select query columns index. * @param rs ResultSet. * @return Constructed binary object. * @throws CacheLoaderException If failed to construct binary object. */ protected Object buildBinaryObject(String typeName, JdbcTypeField[] fields, Map<String, Integer> loadColIdxs, ResultSet rs) throws CacheLoaderException { try { BinaryObjectBuilder builder = ignite.binary().builder(typeName); for (JdbcTypeField field : fields) { Integer colIdx = columnIndex(loadColIdxs, field.getDatabaseFieldName()); Object colVal = transformer.getColumnValue(rs, colIdx, field.getJavaFieldType()); builder.setField(field.getJavaFieldName(), colVal, (Class<Object>)field.getJavaFieldType()); } return builder.build(); } catch (SQLException e) { throw new CacheException("Failed to read binary object: " + typeName, e); } }
"[cache=" + U.maskName(cacheName) + ", type=" + typeName + " ]"); if (field.getJavaFieldType() == null) throw new CacheException("Missing field type in mapping description " + "[cache=" + U.maskName(cacheName) + ", type=" + typeName + " ]");
/** * Copy constructor. * * @param field Field to copy. */ public JdbcTypeField(JdbcTypeField field) { this(field.getDatabaseFieldType(), field.getDatabaseFieldName(), field.getJavaFieldType(), field.getJavaFieldName()); }
try { if (fieldVal != null) { if (field.getJavaFieldType() == UUID.class) { switch (field.getDatabaseFieldType()) { case Types.BINARY: else if (field.getJavaFieldType().isEnum()) { if (fieldVal instanceof Enum) { Enum val = (Enum)fieldVal;
Object colVal = transformer.getColumnValue(rs, colIdx, fld.getJavaFieldType());
/** * Construct Java built in object from query result. * * @param typeName Type name. * @param fields Fields descriptors. * @param loadColIdxs Select query columns indexes. * @param rs ResultSet to take data from. * @return Constructed object. * @throws CacheLoaderException If failed to construct POJO. */ private Object buildBuiltinObject(String typeName, JdbcTypeField[] fields, Map<String, Integer> loadColIdxs, ResultSet rs) throws CacheLoaderException { JdbcTypeField field = fields[0]; try { Integer colIdx = columnIndex(loadColIdxs, field.getDatabaseFieldName()); return transformer.getColumnValue(rs, colIdx, field.getJavaFieldType()); } catch (SQLException e) { throw new CacheLoaderException("Failed to read object: [cls=" + typeName + ", prop=" + field + "]", e); } }
getter = methodByName(cls, fldName); Method setter = methodByName(cls, "set" + mthName, jdbcFld.getJavaFieldType()); setter = methodByName(cls, fldName, jdbcFld.getJavaFieldType());
/** * Create data transfer object for given cache type metadata. * * @param jdbcType JDBC type. */ public VisorCacheJdbcType(JdbcType jdbcType) { keyType = jdbcType.getKeyType(); valType = jdbcType.getValueType(); dbSchema = jdbcType.getDatabaseSchema(); dbTbl = jdbcType.getDatabaseTable(); JdbcTypeField[] kFields = jdbcType.getKeyFields(); if (kFields != null) { keyFields = new ArrayList<>(kFields.length); for (JdbcTypeField fld : kFields) keyFields.add(new VisorCacheJdbcTypeField( fld.getDatabaseFieldName(), fld.getDatabaseFieldType(), fld.getDatabaseFieldName(), U.compact(fld.getJavaFieldType().getName()))); } JdbcTypeField[] vFields = jdbcType.getValueFields(); if (vFields != null) { valFields = new ArrayList<>(vFields.length); for (JdbcTypeField fld : vFields) valFields.add(new VisorCacheJdbcTypeField( fld.getDatabaseFieldName(), fld.getDatabaseFieldType(), fld.getDatabaseFieldName(), U.compact(fld.getJavaFieldType().getName()))); } }
/** * Construct binary object from query result. * * @param typeName Type name. * @param fields Fields descriptors. * @param loadColIdxs Select query columns index. * @param rs ResultSet. * @return Constructed binary object. * @throws CacheLoaderException If failed to construct binary object. */ protected Object buildBinaryObject(String typeName, JdbcTypeField[] fields, Map<String, Integer> loadColIdxs, ResultSet rs) throws CacheLoaderException { try { BinaryObjectBuilder builder = ignite.binary().builder(typeName); for (JdbcTypeField field : fields) { Integer colIdx = columnIndex(loadColIdxs, field.getDatabaseFieldName()); Object colVal = transformer.getColumnValue(rs, colIdx, field.getJavaFieldType()); builder.setField(field.getJavaFieldName(), colVal, (Class<Object>)field.getJavaFieldType()); } return builder.build(); } catch (SQLException e) { throw new CacheException("Failed to read binary object: " + typeName, e); } }
"[cache=" + U.maskName(cacheName) + ", type=" + typeName + " ]"); if (field.getJavaFieldType() == null) throw new CacheException("Missing field type in mapping description " + "[cache=" + U.maskName(cacheName) + ", type=" + typeName + " ]");