Annotation Type Type


  • @Target({METHOD,FIELD,ANNOTATION_TYPE})
    @Retention(RUNTIME)
    public @interface Type
    Specifies a custom UserType for the annotated attribute mapping. This annotation may be applied:
    • directly to a property or field of an entity to specify the custom type of the property or field,
    • indirectly, as a meta-annotation of an annotation type that is then applied to various properties and fields, or
    • by default, via a registration.

    For example, as an alternative to:

     @Type(MonetaryAmountUserType.class)
     BigDecimal amount;
     

    we may define an annotation type:

     @Retention(RUNTIME)
     @Target({METHOD,FIELD})
     @Type(MonetaryAmountUserType.class)
     public @interface MonetaryAmount {}
     

    and then write:

     @MonetaryAmount
     BigDecimal amount;
     

    which is much cleaner.

    The use of a UserType is usually mutually exclusive with the compositional approach of JavaType and JdbcType.

    See Also:
    UserType, TypeRegistration, CompositeType
    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      Class<? extends UserType<?>> value
      The class which implements UserType.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      Parameter[] parameters
      Parameters to be injected into the custom type after it is instantiated.
      • parameters

        Parameter[] parameters
        Parameters to be injected into the custom type after it is instantiated. The UserType implementation must implement ParameterizedType to receive the parameters.
        Default:
        {}