org.hibernate.type.BinaryType#org.hibernate.usertype.DynamicParameterizedType源码实例Demo

下面列出了org.hibernate.type.BinaryType#org.hibernate.usertype.DynamicParameterizedType 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: hibernate-types   文件: EnumArrayType.java
@Override
public void setParameterValues(Properties parameters) {
    DynamicParameterizedType.ParameterType parameterType = (ParameterType) parameters.get(DynamicParameterizedType.PARAMETER_TYPE);
    Annotation[] annotations = parameterType.getAnnotationsMethod();
    if (annotations != null) {
        for (int i = 0; i < annotations.length; i++) {
            Annotation annotation = annotations[i];
            if (Type.class.isAssignableFrom(annotation.annotationType())) {
                Type type = (Type) annotation;
                name = type.type();
                break;
            }
        }
    }
    if (name == null) {
        name = String.format(DEFAULT_TYPE_NAME, parameters.getProperty(SQL_ARRAY_TYPE));
    }
    ((AbstractArrayTypeDescriptor) getJavaTypeDescriptor()).setParameterValues(parameters);
}
 
源代码2 项目: hibernate-types   文件: EnumArrayType.java
@Override
public void setParameterValues(Properties parameters) {
    DynamicParameterizedType.ParameterType parameterType = (ParameterType) parameters.get(DynamicParameterizedType.PARAMETER_TYPE);
    Annotation[] annotations = parameterType.getAnnotationsMethod();
    if (annotations != null) {
        for (int i = 0; i < annotations.length; i++) {
            Annotation annotation = annotations[i];
            if (Type.class.isAssignableFrom(annotation.annotationType())) {
                Type type = (Type) annotation;
                name = type.type();
                break;
            }
        }
    }
    if (name == null) {
        name = String.format(DEFAULT_TYPE_NAME, parameters.getProperty(SQL_ARRAY_TYPE));
    }
    ((AbstractArrayTypeDescriptor) getJavaTypeDescriptor()).setParameterValues(parameters);
}
 
源代码3 项目: hibernate-types   文件: EnumArrayType.java
@Override
public void setParameterValues(Properties parameters) {
    DynamicParameterizedType.ParameterType parameterType = (ParameterType) parameters.get(DynamicParameterizedType.PARAMETER_TYPE);
    Annotation[] annotations = parameterType.getAnnotationsMethod();
    if (annotations != null) {
        for (int i = 0; i < annotations.length; i++) {
            Annotation annotation = annotations[i];
            if (Type.class.isAssignableFrom(annotation.annotationType())) {
                Type type = (Type) annotation;
                name = type.type();
                break;
            }
        }
    }
    if (name == null) {
        name = String.format(DEFAULT_TYPE_NAME, parameters.getProperty(SQL_ARRAY_TYPE));
    }
    ((AbstractArrayTypeDescriptor) getJavaTypeDescriptor()).setParameterValues(parameters);
}
 
源代码4 项目: hibernate-types   文件: EnumArrayType.java
@Override
public void setParameterValues(Properties parameters) {
    DynamicParameterizedType.ParameterType parameterType = (ParameterType) parameters.get(DynamicParameterizedType.PARAMETER_TYPE);
    Annotation[] annotations = parameterType.getAnnotationsMethod();
    if (annotations != null) {
        for (int i = 0; i < annotations.length; i++) {
            Annotation annotation = annotations[i];
            if (Type.class.isAssignableFrom(annotation.annotationType())) {
                Type type = (Type) annotation;
                name = type.type();
                break;
            }
        }
    }
    if (name == null) {
        name = String.format(DEFAULT_TYPE_NAME, parameters.getProperty(SQL_ARRAY_TYPE));
    }
    ((AbstractArrayTypeDescriptor) getJavaTypeDescriptor()).setParameterValues(parameters);
}
 
源代码5 项目: lams   文件: SimpleValue.java
public Type getType() throws MappingException {
	if ( type != null ) {
		return type;
	}

	if ( typeName == null ) {
		throw new MappingException( "No type name" );
	}

	if ( typeParameters != null
			&& Boolean.valueOf( typeParameters.getProperty( DynamicParameterizedType.IS_DYNAMIC ) )
			&& typeParameters.get( DynamicParameterizedType.PARAMETER_TYPE ) == null ) {
		createParameterImpl();
	}

	Type result = getMetadata().getTypeConfiguration().getTypeResolver().heuristicType( typeName, typeParameters );
	// if this is a byte[] version/timestamp, then we need to use RowVersionType
	// instead of BinaryType (HHH-10413)
	if ( isVersion && BinaryType.class.isInstance( result ) ) {
		log.debug( "version is BinaryType; changing to RowVersionType" );
		result = RowVersionType.INSTANCE;
	}
	if ( result == null ) {
		String msg = "Could not determine type for: " + typeName;
		if ( table != null ) {
			msg += ", at table: " + table.getName();
		}
		if ( columns != null && columns.size() > 0 ) {
			msg += ", for columns: " + columns;
		}
		throw new MappingException( msg );
	}

	return result;
}
 
源代码6 项目: lams   文件: SimpleValue.java
private void createParameterImpl() {
	try {
		String[] columnsNames = new String[columns.size()];
		for ( int i = 0; i < columns.size(); i++ ) {
			Selectable column = columns.get(i);
			if (column instanceof Column){
				columnsNames[i] = ((Column) column).getName();
			}
		}

		final XProperty xProperty = (XProperty) typeParameters.get( DynamicParameterizedType.XPROPERTY );
		// todo : not sure this works for handling @MapKeyEnumerated
		final Annotation[] annotations = xProperty == null
				? null
				: xProperty.getAnnotations();

		final ClassLoaderService classLoaderService = getMetadata()
				.getMetadataBuildingOptions()
				.getServiceRegistry()
				.getService( ClassLoaderService.class );
		typeParameters.put(
				DynamicParameterizedType.PARAMETER_TYPE,
				new ParameterTypeImpl(
						classLoaderService.classForName(
								typeParameters.getProperty( DynamicParameterizedType.RETURNED_CLASS )
						),
						annotations,
						table.getCatalog(),
						table.getSchema(),
						table.getName(),
						Boolean.valueOf( typeParameters.getProperty( DynamicParameterizedType.IS_PRIMARY_KEY ) ),
						columnsNames
				)
		);
	}
	catch ( ClassLoadingException e ) {
		throw new MappingException( "Could not create DynamicParameterizedType for type: " + typeName, e );
	}
}
 
源代码7 项目: hibernate-types   文件: ListArrayTypeDescriptor.java
@Override
public void setParameterValues(Properties parameters) {
    Class entityClass = ReflectionUtils.getClass(parameters.getProperty(DynamicParameterizedType.ENTITY));
    String property = parameters.getProperty(DynamicParameterizedType.PROPERTY);
    Type memberGenericType = ReflectionUtils.getMemberGenericTypeOrNull(entityClass, property);
    if (memberGenericType instanceof ParameterizedType) {
        ParameterizedType parameterizedType = (ParameterizedType) memberGenericType;
        Type genericType = parameterizedType.getActualTypeArguments()[0];
        if (genericType instanceof WildcardType) {
            genericType = ((WildcardType) genericType).getUpperBounds()[0];
        }
        Class arrayElementClass = ReflectionUtils.getClass(genericType.getTypeName());
        setArrayObjectClass(
            arrayElementClass.isArray() ?
                arrayElementClass :
                ArrayUtil.toArrayClass(arrayElementClass)
        );
        sqlArrayType = parameters.getProperty(AbstractArrayType.SQL_ARRAY_TYPE);
        if (sqlArrayType == null) {
            if (Integer.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "integer";
            } else if (Long.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "bigint";
            } else if (Double.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "float8";
            } else if (String.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "text";
            } else if (UUID.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "uuid";
            } else if (Date.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "timestamp";
            } else {
                throw new UnsupportedOperationException("The " + arrayElementClass + " is not supported yet!");
            }
        }

    } else {
        throw new UnsupportedOperationException("The property " + property + " in the " + entityClass + " entity is not parameterized!");
    }
}
 
源代码8 项目: hibernate-types   文件: EnumArrayType.java
public EnumArrayType(Class arrayClass, String sqlArrayType) {
    this();
    Properties parameters = new Properties();
    parameters.setProperty(SQL_ARRAY_TYPE, sqlArrayType);
    parameters.put(DynamicParameterizedType.PARAMETER_TYPE, new ParameterizedParameterType(arrayClass));
    setParameterValues(parameters);
}
 
@Override
public void setParameterValues(Properties parameters) {
    final XProperty xProperty = (XProperty) parameters.get(DynamicParameterizedType.XPROPERTY);
    if (xProperty instanceof JavaXMember) {
        type = ReflectionUtils.invokeGetter(xProperty, "javaType");
    } else {
        type = ((ParameterType) parameters.get(PARAMETER_TYPE)).getReturnedClass();
    }
}
 
源代码10 项目: hibernate-types   文件: PostgreSQLRangeType.java
@Override
public void setParameterValues(Properties parameters) {
    final XProperty xProperty = (XProperty) parameters.get(DynamicParameterizedType.XPROPERTY);
    if (xProperty instanceof JavaXMember) {
        type = ReflectionUtils.invokeGetter(xProperty, "javaType");
    } else {
        type = ((ParameterType) parameters.get(PARAMETER_TYPE)).getReturnedClass();
    }
}
 
源代码11 项目: hibernate-types   文件: JsonTypeDescriptor.java
@Override
public void setParameterValues(Properties parameters) {
    final XProperty xProperty = (XProperty) parameters.get(DynamicParameterizedType.XPROPERTY);
    if (xProperty instanceof JavaXMember) {
        type = ReflectionUtils.invokeGetter(xProperty, "javaType");
    } else {
        type = ((ParameterType) parameters.get(PARAMETER_TYPE)).getReturnedClass();
    }
}
 
@Override
public void setParameterValues(Properties parameters) {
    final XProperty xProperty = (XProperty) parameters.get(DynamicParameterizedType.XPROPERTY);
    if (xProperty instanceof JavaXMember) {
        type = ReflectionUtils.invokeGetter(xProperty, "javaType");
    } else {
        type = ((ParameterType) parameters.get(PARAMETER_TYPE)).getReturnedClass();
    }
}
 
源代码13 项目: hibernate-types   文件: PostgreSQLGuavaRangeType.java
@Override
public void setParameterValues(Properties parameters) {
    final XProperty xProperty = (XProperty) parameters.get(DynamicParameterizedType.XPROPERTY);
    if (xProperty instanceof JavaXMember) {
        type = ReflectionUtils.invokeGetter(xProperty, "javaType");
    } else {
        type = ((ParameterType) parameters.get(PARAMETER_TYPE)).getReturnedClass();
    }
}
 
源代码14 项目: hibernate-types   文件: PostgreSQLRangeType.java
@Override
public void setParameterValues(Properties parameters) {
    final XProperty xProperty = (XProperty) parameters.get(DynamicParameterizedType.XPROPERTY);
    if (xProperty instanceof JavaXMember) {
        type = ReflectionUtils.invokeGetter(xProperty, "javaType");
    } else {
        type = ((ParameterType) parameters.get(PARAMETER_TYPE)).getReturnedClass();
    }
}
 
源代码15 项目: hibernate-types   文件: JsonTypeDescriptor.java
@Override
public void setParameterValues(Properties parameters) {
    final XProperty xProperty = (XProperty) parameters.get(DynamicParameterizedType.XPROPERTY);
    if (xProperty instanceof JavaXMember) {
        type = ReflectionUtils.invokeGetter(xProperty, "javaType");
    } else {
        type = ((ParameterType) parameters.get(PARAMETER_TYPE)).getReturnedClass();
    }
}
 
源代码16 项目: hibernate-types   文件: EnumArrayType.java
public EnumArrayType(Class arrayClass, String sqlArrayType) {
    this();
    Properties parameters = new Properties();
    parameters.setProperty(SQL_ARRAY_TYPE, sqlArrayType);
    parameters.put(DynamicParameterizedType.PARAMETER_TYPE, new ParameterizedParameterType(arrayClass));
    setParameterValues(parameters);
}
 
源代码17 项目: hibernate-types   文件: PostgreSQLGuavaRangeType.java
@Override
public void setParameterValues(Properties parameters) {
    final XProperty xProperty = (XProperty) parameters.get(DynamicParameterizedType.XPROPERTY);
    if (xProperty instanceof JavaXMember) {
        type = ReflectionUtils.invokeGetter(xProperty, "javaType");
    } else {
        type = ((ParameterType) parameters.get(PARAMETER_TYPE)).getReturnedClass();
    }
}
 
源代码18 项目: hibernate-types   文件: PostgreSQLRangeType.java
@Override
public void setParameterValues(Properties parameters) {
    final XProperty xProperty = (XProperty) parameters.get(DynamicParameterizedType.XPROPERTY);
    if (xProperty instanceof JavaXMember) {
        type = ReflectionUtils.invokeGetter(xProperty, "javaType");
    } else {
        type = ((ParameterType) parameters.get(PARAMETER_TYPE)).getReturnedClass();
    }
}
 
源代码19 项目: hibernate-types   文件: JsonTypeDescriptor.java
@Override
public void setParameterValues(Properties parameters) {
    final XProperty xProperty = (XProperty) parameters.get(DynamicParameterizedType.XPROPERTY);
    if (xProperty instanceof JavaXMember) {
        type = ReflectionUtils.invokeGetter(xProperty, "javaType");
    } else {
        type = ((ParameterType) parameters.get(PARAMETER_TYPE)).getReturnedClass();
    }
}
 
源代码20 项目: spring-data-jpa-extra   文件: JSONType.java
@SuppressWarnings("unchecked")
public void setParameterValues(Properties parameters) {
    try {
        Class eClass = ReflectHelper.classForName(parameters.getProperty(DynamicParameterizedType.ENTITY));
        Field field = ReflectionUtils.findField(eClass, parameters.getProperty(DynamicParameterizedType.PROPERTY));
        Type fieldType = field.getGenericType();
        if (fieldType instanceof Class || fieldType instanceof ParameterizedType) {
            type = fieldType;
        }
        parseSqlType(field.getAnnotations());
        return;
    } catch (Exception e) {
        LOG.error(e.getMessage());
    }
    final DynamicParameterizedType.ParameterType reader = (DynamicParameterizedType.ParameterType) parameters.get(
            DynamicParameterizedType.PARAMETER_TYPE);
    if (reader != null) {
        type = reader.getReturnedClass();
        parseSqlType(reader.getAnnotationsMethod());
    } else {
        try {
            type = ReflectHelper.classForName((String) parameters.get(CLASS_NAME));
        } catch (ClassNotFoundException exception) {
            throw new HibernateException("class not found", exception);
        }
    }
}
 
源代码21 项目: hibernate-types   文件: LongArrayType.java
public LongArrayType(Class arrayClass) {
    this();
    Properties parameters = new Properties();
    parameters.put(DynamicParameterizedType.PARAMETER_TYPE, new ParameterizedParameterType(arrayClass));
    setParameterValues(parameters);
}
 
源代码22 项目: hibernate-types   文件: IntArrayType.java
public IntArrayType(Class arrayClass) {
    this();
    Properties parameters = new Properties();
    parameters.put(DynamicParameterizedType.PARAMETER_TYPE, new ParameterizedParameterType(arrayClass));
    setParameterValues(parameters);
}
 
源代码23 项目: hibernate-types   文件: StringArrayType.java
public StringArrayType(Class arrayClass) {
    this();
    Properties parameters = new Properties();
    parameters.put(DynamicParameterizedType.PARAMETER_TYPE, new ParameterizedParameterType(arrayClass));
    setParameterValues(parameters);
}
 
源代码24 项目: hibernate-types   文件: TimestampArrayType.java
public TimestampArrayType(Class arrayClass) {
    this();
    Properties parameters = new Properties();
    parameters.put(DynamicParameterizedType.PARAMETER_TYPE, new ParameterizedParameterType(arrayClass));
    setParameterValues(parameters);
}
 
源代码25 项目: hibernate-types   文件: UUIDArrayType.java
public UUIDArrayType(Class arrayClass) {
    this();
    Properties parameters = new Properties();
    parameters.put(DynamicParameterizedType.PARAMETER_TYPE, new ParameterizedParameterType(arrayClass));
    setParameterValues(parameters);
}
 
源代码26 项目: hibernate-types   文件: DateArrayType.java
public DateArrayType(Class arrayClass) {
    this();
    Properties parameters = new Properties();
    parameters.put(DynamicParameterizedType.PARAMETER_TYPE, new ParameterizedParameterType(arrayClass));
    setParameterValues(parameters);
}
 
源代码27 项目: hibernate-types   文件: DoubleArrayType.java
public DoubleArrayType(Class arrayClass) {
    this();
    Properties parameters = new Properties();
    parameters.put(DynamicParameterizedType.PARAMETER_TYPE, new ParameterizedParameterType(arrayClass));
    setParameterValues(parameters);
}
 
源代码28 项目: hibernate-types   文件: ListArrayTypeDescriptor.java
@Override
public void setParameterValues(Properties parameters) {
    Class entityClass = ReflectionUtils.getClass(parameters.getProperty(DynamicParameterizedType.ENTITY));
    String property = parameters.getProperty(DynamicParameterizedType.PROPERTY);
    Type memberGenericType = ReflectionUtils.getMemberGenericTypeOrNull(entityClass, property);
    if (memberGenericType instanceof ParameterizedType) {
        ParameterizedType parameterizedType = (ParameterizedType) memberGenericType;

        Type arrayElementType = parameterizedType.getActualTypeArguments()[0];
        String arrayElementClassName = ReflectionUtils.getFieldValue(arrayElementType, "name");
        if (arrayElementClassName == null) {
            arrayElementClassName = arrayElementType.toString().replaceAll("class ", "");
        }

        Class arrayElementClass = ReflectionUtils.getClass(arrayElementClassName);
        setArrayObjectClass(
            arrayElementClass.isArray() ?
                arrayElementClass :
                ArrayUtil.toArrayClass(arrayElementClass)
        );
        sqlArrayType = parameters.getProperty(AbstractArrayType.SQL_ARRAY_TYPE);
        if (sqlArrayType == null) {
            if (Integer.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "integer";
            } else if (Long.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "bigint";
            } else if (Double.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "float8";
            } else if (String.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "text";
            } else if (UUID.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "uuid";
            } else if(Date.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "timestamp";
            } else {
                throw new UnsupportedOperationException("The " + arrayElementClass + " is not supported yet!");
            }
        }

    } else {
        throw new UnsupportedOperationException("The property " + property + " in the " + entityClass + " entity is not parameterized!");
    }
}
 
源代码29 项目: hibernate-types   文件: ListArrayTypeDescriptor.java
@Override
public void setParameterValues(Properties parameters) {
    Class entityClass = ReflectionUtils.getClass(parameters.getProperty(DynamicParameterizedType.ENTITY));
    String property = parameters.getProperty(DynamicParameterizedType.PROPERTY);
    Type memberGenericType = ReflectionUtils.getMemberGenericTypeOrNull(entityClass, property);
    if (memberGenericType instanceof ParameterizedType) {
        ParameterizedType parameterizedType = (ParameterizedType) memberGenericType;

        Type arrayElementType = parameterizedType.getActualTypeArguments()[0];
        String arrayElementClassName = ReflectionUtils.getFieldValue(arrayElementType, "name");
        if (arrayElementClassName == null) {
            arrayElementClassName = arrayElementType.toString().replaceAll("class ", "");
        }

        Class arrayElementClass = ReflectionUtils.getClass(arrayElementClassName);
        setArrayObjectClass(
            arrayElementClass.isArray() ?
                arrayElementClass :
                ArrayUtil.toArrayClass(arrayElementClass)
        );
        sqlArrayType = parameters.getProperty(AbstractArrayType.SQL_ARRAY_TYPE);
        if (sqlArrayType == null) {
            if (Integer.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "integer";
            } else if (Long.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "bigint";
            } else if (Double.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "float8";
            } else if (String.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "text";
            } else if (UUID.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "uuid";
            } else if (Date.class.isAssignableFrom(arrayElementClass)) {
                sqlArrayType = "timestamp";
            } else {
                throw new UnsupportedOperationException("The " + arrayElementClass + " is not supported yet!");
            }
        }

    } else {
        throw new UnsupportedOperationException("The property " + property + " in the " + entityClass + " entity is not parameterized!");
    }
}
 
源代码30 项目: hibernate-types   文件: LongArrayType.java
public LongArrayType(Class arrayClass) {
    this();
    Properties parameters = new Properties();
    parameters.put(DynamicParameterizedType.PARAMETER_TYPE, new ParameterizedParameterType(arrayClass));
    setParameterValues(parameters);
}