private void resolveTypeHandler() { if (resultMapping.typeHandler == null && resultMapping.javaType != null) { Configuration configuration = resultMapping.configuration; TypeHandlerRegistry typeHandlerRegistry = configuration.getTypeHandlerRegistry(); resultMapping.typeHandler = typeHandlerRegistry.getTypeHandler(resultMapping.javaType, resultMapping.jdbcType); } }
private Object prepareSimpleKeyParameter( ResultSet rs, ResultMapping resultMapping, Class<?> parameterType, String columnPrefix) throws SQLException { final TypeHandler<?> typeHandler; if (typeHandlerRegistry.hasTypeHandler(parameterType)) { typeHandler = typeHandlerRegistry.getTypeHandler(parameterType); } else { typeHandler = typeHandlerRegistry.getUnknownTypeHandler(); } return typeHandler.getResult(rs, prependPrefix(resultMapping.getColumn(), columnPrefix)); }
private TypeHandler resolveTypeHandler( Class clazz, String propertyName, String javaType, JdbcType jdbcType) { TypeHandler handler; if (clazz == null) { // Unknown handler = typeHandlerRegistry.getUnknownTypeHandler(); } else if (java.util.Map.class.isAssignableFrom(clazz)) { // Map if (javaType == null) { handler = typeHandlerRegistry.getUnknownTypeHandler(); // BUG 1012591 - // typeHandlerRegistry.getTypeHandler(java.lang.Object.class, jdbcType); } else { try { Class javaClass = typeAliasRegistry.resolveAlias(javaType); handler = typeHandlerRegistry.getTypeHandler(javaClass, jdbcType); } catch (Exception e) { throw new SqlMapException("Error. Could not set TypeHandler. Cause: " + e, e); } } } else if (typeHandlerRegistry.getTypeHandler(clazz, jdbcType) != null) { // Primitive handler = typeHandlerRegistry.getTypeHandler(clazz, jdbcType); } else { // JavaBean if (javaType == null) { Class type = MetaClass.forClass(clazz).getGetterType(propertyName); handler = typeHandlerRegistry.getTypeHandler(type, jdbcType); } else { try { Class javaClass = typeAliasRegistry.resolveAlias(javaType); handler = typeHandlerRegistry.getTypeHandler(javaClass, jdbcType); } catch (Exception e) { throw new SqlMapException("Error. Could not set TypeHandler. Cause: " + e, e); } } } return handler; }
private Object prepareCompositeKeyParameter( ResultSet rs, ResultMapping resultMapping, Class<?> parameterType, String columnPrefix) throws SQLException { final Object parameterObject = instantiateParameterObject(parameterType); final MetaObject metaObject = configuration.newMetaObject(parameterObject); boolean foundValues = false; for (ResultMapping innerResultMapping : resultMapping.getComposites()) { final Class<?> propType = metaObject.getSetterType(innerResultMapping.getProperty()); final TypeHandler<?> typeHandler = typeHandlerRegistry.getTypeHandler(propType); final Object propValue = typeHandler.getResult(rs, prependPrefix(innerResultMapping.getColumn(), columnPrefix)); if (propValue != null) { // issue #353 & #560 do not execute nested query if key is null metaObject.setValue(innerResultMapping.getProperty(), propValue); foundValues = true; } } return foundValues ? parameterObject : null; }