Copyright (c) 2011 - 2013 Oracle Corporation. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
which accompanies this distribution.
The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
and the Eclipse Distribution License is available at
http://www.eclipse.org/org/documents/edl-v10.php.
Contributors:
Linda DeMichiel - Java Persistence 2.1
/*******************************************************************************
* Copyright (c) 2011 - 2013 Oracle Corporation. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Linda DeMichiel - Java Persistence 2.1
*
******************************************************************************/
package javax.persistence;
import java.lang.annotation.Target;
import java.lang.annotation.Retention;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
Specifies that the annotated class is a converter and defines its
scope. A converter class must be annotated with the Converter
annotation or defined in the object/relational mapping descriptor as
a converter.
If the autoApply
element is specified as
true
, the persistence provider must automatically
apply the converter to all mapped attributes of the specified
target type for all entities in the persistence unit except for
attributes for which conversion is overridden by means of the
Convert
annotation (or XML equivalent).
In determining whether a converter is applicable to an attribute,
the provider must treat primitive types and wrapper types as
equivalent.
Note that Id attributes, version attributes, relationship
attributes, and attributes explicitly annotated as
Enumerated
or Temporal
(or designated as
such via XML) will not be converted.
Note that if autoApply
is true
, the
Convert
annotation may be used to override or disable
auto-apply conversion on a per-attribute basis.
If autoApply
is false
, only those
attributes of the target type for which the Convert
annotation (or corresponding XML element) has been specified will
be converted.
If there is more than one converter defined for the same target
type, the Convert
annotation should be used to
explicitly specify which converter to use.
See Also: - AttributeConverter
- Convert
Since: Java Persistence 2.1
/**
* Specifies that the annotated class is a converter and defines its
* scope. A converter class must be annotated with the <code>Converter</code>
* annotation or defined in the object/relational mapping descriptor as
* a converter.
*
* <p>If the <code>autoApply</code> element is specified as
* <code>true</code>, the persistence provider must automatically
* apply the converter to all mapped attributes of the specified
* target type for all entities in the persistence unit except for
* attributes for which conversion is overridden by means of the
* <code>Convert</code> annotation (or XML equivalent).
*
* <p>In determining whether a converter is applicable to an attribute,
* the provider must treat primitive types and wrapper types as
* equivalent.
*
* <p>Note that Id attributes, version attributes, relationship
* attributes, and attributes explicitly annotated as
* <code>Enumerated</code> or <code>Temporal</code> (or designated as
* such via XML) will not be converted.
*
* <p>Note that if <code>autoApply</code> is <code>true</code>, the
* <code>Convert</code> annotation may be used to override or disable
* auto-apply conversion on a per-attribute basis.
*
* <p>If <code>autoApply</code> is <code>false</code>, only those
* attributes of the target type for which the <code>Convert</code>
* annotation (or corresponding XML element) has been specified will
* be converted.
*
* <p>If there is more than one converter defined for the same target
* type, the <code>Convert</code> annotation should be used to
* explicitly specify which converter to use.
*
* @see AttributeConverter
* @see Convert
*
* @since Java Persistence 2.1
*/
@Target({TYPE}) @Retention(RUNTIME)
public @interface Converter {
boolean autoApply() default false;
}