Package org.hibernate.annotations

Annotation Type Type


  • @Target({METHOD,FIELD,ANNOTATION_TYPE})@Retention(RUNTIME)public @interfaceType
    Specifies a customUserType 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 aregistration.

    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 aUserType is usually mutually exclusive with the compositional approach ofJavaType andJdbcType.

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

      Required Elements 
      Modifier and TypeRequired ElementDescription
      Class<? extendsUserType<?>>value
      The class which implementsUserType.
    • Optional Element Summary

      Optional Elements 
      Modifier and TypeOptional ElementDescription
      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. TheUserType implementation must implementParameterizedType to receive the parameters.
        Default:
        {}