private static void applyLength( PersistentAttributeMapping property, ConstraintDescriptor<?> descriptor, PropertyDescriptor propertyDescriptor) { if ( "org.hibernate.validator.constraints.Length".equals( descriptor.getAnnotation().annotationType().getName() ) && String.class.equals( propertyDescriptor.getElementClass() ) ) { @SuppressWarnings("unchecked") final int max = (Integer) descriptor.getAttributes().get( "max" ); final Column col = getColumn( property ); if ( max < Integer.MAX_VALUE ) { col.setLength( (long) max ); } } }
private static void applySize(PersistentAttributeMapping property, ConstraintDescriptor<?> descriptor, PropertyDescriptor propertyDescriptor) { if ( Size.class.equals( descriptor.getAnnotation().annotationType() ) && String.class.equals( propertyDescriptor.getElementClass() ) ) { @SuppressWarnings("unchecked") final ConstraintDescriptor<Size> sizeConstraint = (ConstraintDescriptor<Size>) descriptor; final int max = sizeConstraint.getAnnotation().max(); final Column col = getColumn( property ); if ( max < Integer.MAX_VALUE ) { col.setLength( (long) max ); } } }
private static void applyMin(PersistentAttributeMapping property, ConstraintDescriptor<?> descriptor, Dialect dialect) { if ( Min.class.equals( descriptor.getAnnotation().annotationType() ) ) { @SuppressWarnings("unchecked") final ConstraintDescriptor<Min> minConstraint = (ConstraintDescriptor<Min>) descriptor; final long min = minConstraint.getAnnotation().value(); final Column col = getColumn( property ); final String checkConstraint = col.getQuotedName(dialect) + ">=" + min; applySQLCheck( col, checkConstraint ); } }
private static void applyMax(PersistentAttributeMapping property, ConstraintDescriptor<?> descriptor, Dialect dialect) { if ( Max.class.equals( descriptor.getAnnotation().annotationType() ) ) { @SuppressWarnings("unchecked") final ConstraintDescriptor<Max> maxConstraint = (ConstraintDescriptor<Max>) descriptor; final long max = maxConstraint.getAnnotation().value(); final Column col = getColumn( property ); final String checkConstraint = col.getQuotedName(dialect) + "<=" + max; applySQLCheck( col, checkConstraint ); } }
private static void applyDigits(PersistentAttributeMapping property, ConstraintDescriptor<?> descriptor) { if ( Digits.class.equals( descriptor.getAnnotation().annotationType() ) ) { @SuppressWarnings("unchecked") final ConstraintDescriptor<Digits> digitsConstraint = (ConstraintDescriptor<Digits>) descriptor; final int integerDigits = digitsConstraint.getAnnotation().integer(); final int fractionalDigits = digitsConstraint.getAnnotation().fraction(); final Column col = getColumn( property ); col.setPrecision( integerDigits + fractionalDigits ); col.setScale( fractionalDigits ); } }