| ID | Chapter | Section | Description | Required | Dependency | Implementation Specific | Defined by | Status | Testable | 
| PERSISTENCE:SPEC:500 | 2 | 1 | The entity class must: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:501 | 2 | 1 | be annotated with the Entity annotation | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:502 | 2 | 1 | be denoted in the XML descriptor as an Entity | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:503 | 2 | 1 | The entity must have a no-arg constructor. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:504 | 2 | 1 | The entity may have other constructors as well. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:505 | 2 | 1 | The no-arg constructor must be public or protected. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1318 | 2 | 1 | The entity class must be a top-level class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1145 | 2 | 1 | An enum or interface must not be designated as an
                entity. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:506 | 2 | 1 | If an entity instance is to be passed by value as a
                detached object (e.g., through a remote
                interface), the entity class must implement the Serializable
                interface. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:507 | 2 | 1 | The entity class must not be final. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:508 | 2 | 1 | No methods or persistent instances of the entity class
                may be final. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1146 | 2 | 1 | An instance variable must be directly accessed only
                from within the methods of the entity by
                the entity instance itself. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:509 | 2 | 1 | Both abstract and concrete classes can be entities. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:510 | 2 | 1 | Entities may extend non-entity classes as well as
                entity classes and non-entity classes may
                extend entity classes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:511 | 2 | 1 | Instance variables must not be accessed by clients of
                the entity. The state of the entity is
                available to clients only through the entity's methods—i.e.,
                accessor methods (getter/setter methods) or
                other business methods. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:516 | 2 | 1.1 | It is required that the entity class follow the method
                conventions for a JavaBean when
                property-based access is used. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:512 | 2 | 2 | Instance variables of a class must be private,
                protected, or package visibility independent of
                whether field access or property access is used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:515 | 2 | 2 | When property access is used, the property accessor
                methods must be public or protected. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1319 | 2 | 2 | for every persistent property property of type T of the
                entity, there is a getter method,
                getProperty, and setter method setProperty. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1320 | 2 | 2 | For boolean properties, isProperty may be used as an
                alternative name for the getter method | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:517 | 2 | 2 | Collection-valued persistent fields and properties must
                be defined in terms of one of the
                following collection-valued interfaces regardless of whether the
                entity class otherwise adheres to the
                JavaBeans method conventions noted above and whether field or
                property access is used | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:518 | 2 | 2 | The following collection interfaces are
                        supported: java.util.Collection,
                        java.util.set,
                        java.util.List, java.util.Map | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1321 | 2 | 2 | The collection implementation type may be used by the
                application to initialize fields or
                properties before the entity is made persistent. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1322 | 2 | 2 | Once the entity becomes managed (or detached),
                subsequent access must be through the
                interface type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:519 | 2 | 2 | For collection-valued persistent properties, type T
                must be one of these collection interface
                types in the method signatures above. Use of the generic
                variants of these collection types is
                encouraged | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:520 | 2 | 2 | In addition to returning and setting persistent state
                of the instance, the property accessor
                methods may contain other business logic as well, for example,
                to perform validation. The persistence
                provider runtime executes this logic when property-based access
                is used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:521 | 2 | 2 | If a persistence context is joined to a transaction,
                runtime exceptions thrown by
                property accessor methods cause the current transaction to be
                rolled back. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:522 | 2 | 2 | Exceptions thrown by such methods when used by the
                persistence runtime to load or store
                persistent state cause the persistence runtime to mark the
                current transaction for rollback and to throw
                a PersistenceException that wraps the application exception. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:523 | 2 | 2 | Entity subclasses may override the property accessor
                methods. However, portable applications
                must not override the object/relational mapping metadata that
                applies to the persistent fields or
                properties of
                entity superclasses. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:524 | 2 | 2 | The persistent fields or properties of an entity may be
                one of the following types: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:525 | 2 | 2 | Java primitive types | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:526 | 2 | 2 | java.lang.String | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:527 | 2 | 2 | other Java serializable types (including
                        wrappers of the primitive types,
                        java.math.BigInteger, java.math.BigDecimal,
                        java.util.Date,
                        java.util.Calendar, java.sql.Date, java.sql.Time,
                        java.sql.TimeStamp | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:528 | 2 | 2 | user-defined serializable types, byte[],
                        Byte[], char[], and Character[] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:529 | 2 | 2 | enums | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:530 | 2 | 2 | entity types | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:531 | 2 | 2 | collection of entity types | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:532 | 2 | 2 | embeddable classes | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:524.1 | 2 | 2 | collections of basic types | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:524.2 | 2 | 2 | collections of embeddable types | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1149 | 2 | 3.1 | By default, a single access type(field or property
                access) applies to an entity hierarchy. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1323 | 2 | 3.1 | The default
                access type of an entity hierarchy is determined by the
                placement of mapping annotations on the
                attributes of the entity classes and mapped superclasses of the
                entity hierarchy that do not explicitly
                specify an access type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1324 | 2 | 3.1 | An access type is explicitly specified by means of the
                Access annotation | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:513 | 2 | 3.1 | When field-based access is used, the object/relational
                mapping annotations for the entity class
                annotate the instance variables, and the persistence provider
                runtime accesses instance variables
                directly. All non-transient instance variables that are not
                annotated with the Transient
                annotation are persistent. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:514 | 2 | 3.1 | When property-based access is used, the
                object/relational mapping annotations for the entity
                class annotate the getter property accessors, and the
                persistence provider runtime accesses persistent
                state via the property accessor methods. All properties not
                annotated with the
                Transient annotation are persistent. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1150 | 2 | 3.1 | Mapping annotations must not be applied to fields or
                properties that are transient or
                Transient. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1325 | 2 | 3.1 | All such classes in the entity hierarchy whose access
                type is defaulted in this way must be
                consistent in
                their placement of annotations on either fields or properties,
                such that a single, consistent default
                access type applies within the hierarchy. Any embeddable classes
                used by such classes will have the same
                access type as the default access type of the hierarchy unless
                the Access annotation is specified as
                defined below. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1326 | 2 | 3.2 | An access type for an individual entity class, mapped
                superclass, or embeddable class can be
                specified for that class independent of the default for the
                entity hierarchy by means of the Access
                annotation applied to the class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1327 | 2 | 3.2 | This explicit access type specification does not affect
                the access type of other entity
                classes or mapped superclasses in the entity hierarchy. The
                following rules apply: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1327.1 | 2 | 3.2 | When Access(FIELD) is applied to an entity
                        class, mapped superclass, or embeddable
                        class, mapping annotations may be placed on the instance
                        variables of that class, and the
                        persistence
                        provider runtime accesses persistent state via the
                        instance variables defined by the
                        class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1327.2 | 2 | 3.2 | All non-transient instance variables that are
                        not annotated with the Transient
                        annotation
                        are persistent. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1327.3 | 2 | 3.2 | When Access(FIELD) is applied to such a class,
                        it is possible to
                        selectively designate individual attributes within the
                        class for property access. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1153 | 2 | 3.2 | To specify a persistent property for access by
                        the persistence provider runtime,
                        that
                        property
                        must be designated Access(PROPERTY.) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1327.4 | 2 | 3.2 | It is permitted (but redundant) to place
                        Access(FIELD) on a persistent field whose
                        class has field access type or Access(PROPERTY)
                        on a persistent property whose class has property access
                        type | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1327.5 | 2 | 3.2 | It is not permitted to specify a field as
                        Access(PROPERTY) or a property as
                        Access(FIELD) | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1327.6 | 2 | 3.2 | Note that Access(PROPERTY) must not be placed
                        on the setter methods. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1154 | 2 | 3.2 | The behavior is undefined if mapping
                        annotations are placed on any properties
                        defined
                        by the
                        class for which Access(PROPERTY) is not specified. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1327.7 | 2 | 3.2 | Persistent state inherited from superclasses is
                        accessed in accordance with the
                        access
                        types of those superclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1327.8 | 2 | 3.2 | When Access(PROPERTY) is applied to an entity
                        class, mapped superclass, or
                        embeddable
                        class, mapping annotations may be placed on the
                        properties of that class, and the
                        persistence
                        provider runtime accesses persistent state via the
                        properties defined by that class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1327.9 | 2 | 3.2 | All properties that are not annotated with the
                        Transient annotation are persistent. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1327.10 | 2 | 3.2 | When Access(PROPERTY) is applied to such a
                        class, it is possible to selectively
                        designate individual attributes within the class for
                        instance variable access. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1155 | 2 | 3.2 | To specify a persistent instance variable for
                        access by the persistence provider
                        runtime, that
                        instance variable must be designated Access(FIELD) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1156 | 2 | 3.2 | The behavior is undefined if mapping
                        annotations are placed on any instance
                        variables
                        defined
                        by the class for which Access(FIELD) is not specified. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1327.11 | 2 | 3.2 | Persistent state inherited from superclasses is
                        accessed in accordance with the
                        access
                        types of those superclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1328 | 2 | 3.3 | The access type of an embeddable class is determined by
                the access type of the entity class,
                mapped superclass, or embeddable class in which it is embedded
                (including as a member of an element
                collection) independent of whether the access type of the
                containing class has been explicitly specified
                or defaulted. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1329 | 2 | 3.3 | A different access type for an embeddable class can be
                specified for that embeddable class
                by means of the Access annotation as described above. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:533 | 2 | 4 | Every entity must have a primary key. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1158 | 2 | 4 | The primary key must be defined on the entity class
                that is the root of the entity hierarchy or
                on a mapped superclass that is a (direct or indirect) superclass
                of all entity classes in the entity
                hierarchy. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1159 | 2 | 4 | The primary key must be defined exactly once in an
                entity hierarchy. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:534 | 2 | 4 | A simple (i.e., non-composite) primary key must
                correspond to a single persistent field or
                property of the entity class. The Id annotation or id XML
                element must be used to denote a simple
                primary key. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:535 | 2 | 4 | Composite primary key must correspond to either a
                single persistent field or property or to a
                set of such fields or properties | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1162 | 2 | 4 | A primary key class must be defined to represent a
                composite primary key. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1330 | 2 | 4 | The EmbeddedId or IdClass annotation is used to denote
                a composite primary key | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:536 | 2 | 4 | A simple primary key or a field or property of a
                composite primary key should be one of the
                following types: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:537 | 2 | 4 | any Java primitive type | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:538 | 2 | 4 | any primitive wrapper type | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:539 | 2 | 4 | java.lang.String | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:540 | 2 | 4 | java.util.Date. If java.util.Date is used as a
                        primary key field or property,the
                        temporal type should be specified as DATE. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:541 | 2 | 4 | java.sql.Date | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1169 | 2 | 4 | java.math.BigDecimal | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1170 | 2 | 4 | java.math.BigInteger | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1331 | 2 | 4 | If the primary key is a composite primary key derived
                from the primary key of another entity,
                the primary key may contain an attribute whose type is that of
                the primary key of the referenced entity | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1172 | 2 | 4 | If generated primary keys are used, only integral types
                will be portable. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:543 | 2 | 4 | The following rules apply for composite primary keys: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:544 | 2 | 4 | The primary key class must be public and must
                        have a public no-arg constructor. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:542 | 2 | 4 | The access type (field- or property-based
                        access) of a primary key class is
                        determined
                        by the access type of the entity for which it is the
                        primary key unless the primary key is a
                        embedded id and a different access type is specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:546 | 2 | 4 | If property-based access is used, the
                        properties of the primary key class must be
                        public or protected. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:545 | 2 | 4 | The primary key class must be serializable. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:547 | 2 | 4 | The primary key class must define equals and
                        hashCode methods. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:548 | 2 | 4 | A composite primary key must either be
                        represented and mapped as an embeddable
                        class
                        (EmbeddedId annotation) or must be represented as an id
                        class and mapped to multiple fields
                        or
                        properties of the entity class (IdClass annotation). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:549 | 2 | 4 | If the composite primary key class is
                        represented as an id class, the names of
                        primary
                        key fields or properties in the primary key class and
                        those of the entity class to which the
                        id
                        class is mapped must correspond and their types must be
                        the same. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1177 | 2 | 4 | A primary key that corresponds to a derived
                        identity must conform to the rules | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:550 | 2 | 4 | The application must not change the value of the
                primary key. The behavior is undefined
                if this occurs. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1179 | 2 | 4.1 | The identity of an entity may be derived from the
                identity of another entity (the "parent"
                entity) when the former entity (the "dependent" entity) is the
                owner of a many-to-one or one-to-one
                relationship to the parent entity and a foreign key maps the
                relationship from dependent to parent. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1332 | 2 | 4.1 | If a many-to-one or one-to-one entity relationship
                corresponds to a primary key attribute, the
                entity containing this relationship cannot be persisted without
                the relationship having been assigned an
                entity
                since the identity of the entity containing the relationship is
                derived from the referenced entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1333 | 2 | 4.1 | Derived identities may be captured by means of simple
                primary keys or by means of composite
                primary keys | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1180 | 2 | 4.1 | If the dependent entity class has primary key
                attributes in addition to those of the parent's
                primary key or if the parent has a composite primary key, an
                embedded id or id class must be used to
                specify the primary key of the dependent entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1334 | 2 | 4.1 | It is not necessary that parent entity and dependent
                entity both use embedded ids or both use
                id classes to represent composite primary keys when the parent
                has a composite key. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1181 | 2 | 4.1 | A dependent entity may have more than one parent
                entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1182 | 2 | 4.1.1 | If the dependent entity uses an id class to represent
                its primary key, one of the two following
                rules must be observed: The names of the attributes of the id
                class and the Id attributes of the
                dependent entity class
                must correspond as follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1183 | 2 | 4.1.1 | The Id attribute in the entity class and the
                        corresponding attribute in the id
                        class
                        must have
                        the same name. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1184 | 2 | 4.1.1 | If an Id attribute in the entity class is of
                        basic type, the corresponding
                        attribute in
                        the id
                        class must have the same type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1185 | 2 | 4.1.1 | If an Id attribute in the entity is a
                        many-to-one or one-to-one reference to a
                        parent
                        entity,
                        the type of the corresponding attribute in the id class
                        must be the same Java type as the id
                        class or
                        embedded id of the parent entity (if the parent entity
                        has a composite primary key) or the
                        type
                        of the
                        Id attribute of the parent entity (if the parent entity
                        has a simple primary key). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1182.1 | 2 | 4.1.1 | If the dependent entity has a single primary
                        key attribute (i.e., the relationship
                        attribute), the id class specified by the dependent
                        entity must be the same as the primary
                        key
                        class of the parent entity. The Id annotation is applied
                        to the relationship to the parent
                        entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1335 | 2 | 4.1.1 | If the dependent entity uses an embedded id to
                represent its primary key, the attribute in the
                embedded
                id corresponding to the relationship attribute must be of the
                same type as the primary key of the parent
                entity and must be designated by the MapsId annotation applied
                to the relationship attribute. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1336 | 2 | 4.1.1 | The
                value element of the MapsId annotation must be used to specify
                the name of the attribute within the
                embedded id to which the relationship attribute corresponds. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1337 | 2 | 4.1.1 | If the embedded id of the dependent entity
                is of the same Java type as the primary key of the parent
                entity, the relationship attribute maps both
                the
                relationship to the parent and the primary key of the dependent
                entity, and in this case the MapsId
                annotation is specified without the value element | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1338 | 2 | 4.1.1 | Note that the parent’s primary key might be represented
                as either an embedded id or as an id
                class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1339 | 2 | 4.1.1 | If the dependent entity has a single primary key
                attribute (i.e, the relationship attribute or
                an attribute
                that corresponds to the relationship attribute) and the primary
                key of the parent entity is a simple
                primary
                key, the primary key of the dependent entity is a simple primary
                key of the same type as that of the
                parent entity (and neither EmbeddedId nor IdClass is specified).
                In this case, either (1) the
                relationship
                attribute is annotated Id, or (2) a separate Id attribute is
                specified and the relationship attribute
                is annotated MapsId (and the value element of the MapsId
                annotation is not specified). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1340 | 2 | 4.1.2 | A primary key attribute that is derived from the
                identity of a parent entity is mapped by the
                corresponding relationship attribute. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1341 | 2 | 4.1.2 | The default mapping for this relationship is as
                specified in section 2.10. In
                the case where a default mapping does not apply or where a
                default mapping is to be overridden, the
                JoinColumn or JoinColumns annotation is used on the relationship
                attribute. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1342 | 2 | 4.1.2 | If the dependent entity uses an embedded id to
                represent its primary key, the AttributeOverride
                annotation may be used to override the default mapping of
                embedded id attributes that do not correspond
                to the relationship attributes mapping the derived identity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1343 | 2 | 4.1.2 | The embedded id attributes that correspond to the
                relationship are treated by the provider as
                “read only”—that is, any updates to them on the part of the
                application are not propagated to the
                database. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1344 | 2 | 4.1.2 | If the dependent uses an id class, the Column
                annotation may be used to override the default
                mapping of Id attributes that are not relationship attributes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1188 | 2 | 5 | An entity may have collections of embeddables as well
                as single-valued embeddable attributes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1189 | 2 | 5 | Embeddable may be used as map keys and map values. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:551 | 2 | 5 | Embedded objects belong strictly to their owning entity
                and are not shareable across
                persistent entities. Attempting to share an embedded object
                across entities has undefined semantics. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:553 | 2 | 5 | Embeddable classes must adhere to the requirements as
                specified in section 2.1 for entities
                with the exception that embeddable classes are not annotated as
                Entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1190 | 2 | 5 | Embeddable classes must be annotated as Embeddable or
                denoted in XML descriptors. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1191 | 2 | 5 | An embeddable class may be used to represent the state
                of another embeddable class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1192 | 2 | 5 | An embeddable class (including an embeddable class
                within another embeddable class) may contain
                a collection of a basic type or other embeddable class. Direct
                or indirect circular containment
                dependencies among embeddable classes are not permitted. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1193 | 2 | 5 | An embeddable class may contain a relationship to an
                entity or collection of entities. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1194 | 2 | 5 | Since instances of
                embeddable classes themselves have no persistent identity, the
                relationship from the referenced entity
                is to the entity that contains the embeddable instance(s) and
                not to the embeddable itself. An
                embeddable
                class that is used as an embedded id or as map key must not
                contain such a relationship. An entity
                cannot have a unidirectional relationship to the embeddable
                class of another entity (or itself). | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1195 | 2 | 6 | A persistent field or property of an entity or
                embeddable class may correspond to a collection
                of a basic type or embeddable class (“element collection”). Such
                a collection, when specified as such by
                the ElementCollection annotation, is mapped by means of a
                collection table | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1195 | 2 | 6 | If the ElementCollection annotation (or XML equivalent)
                is not specified for the
                collection-valued
                field or property, the rules of Section 2.8 apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1196 | 2 | 6 | An embeddable class (including an embeddable class
                within another embeddable class) that is
                contained within an element collection must not contain an
                element collection, nor may it contain a
                relationship
                to an entity other than a many-to-one or one-to-one
                relationship. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1197 | 2 | 6 | The embeddable class must be on the owning side of the
                relationship and the relationship must
                be mapped by a foreign key mapping. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1198 | 2 | 7 | Collections of elements and entity relationships can be
                represented as java.util.Map
                collections. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1199 | 2 | 7 | The map key type and the map value independently can
                each be a basic type, embeddable class,
                or an entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1200 | 2 | 7 | The ElementCollection, OneToMany, and ManyToMany
                annotations are used to specify the
                map as an element collection or entity relationship as follows:
                when the map value is a basic type or
                embeddable class, the ElementCollection annotation is used; when
                the map value is an entity, the
                OneToMany or ManyToMany annotation is used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1201 | 2 | 7 | Bidirectional relationships represented as
                java.util.Map collections support the use of the Map
                datatype on one side of the relationship only. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1202 | 2 | 7.1 | If the map key type is a basic type, the MapKeyColumn
                annotation is used to specify the column
                mapping for the map key. If the MapKeyColumn annotation is not
                specified, the default values of the
                MapKeyColumn annotation apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1203 | 2 | 7.1 | If the map key type is an embeddable class, the
                mappings for the map key columns are defaulted
                according to the default column mappings for the embeddable
                class. The AttributeOverride and
                AttributeOverrides annotations can be used to override these
                mappings | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1345 | 2 | 7.1 | If an embeddable class is used as a map key, the
                embeddable class must implement the hashCode
                and equals methods consistently with the database columns to
                which the embeddable is mapped | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1204 | 2 | 7.1 | If the map key type is an entity, the MapKeyJoinColumn
                and MapKeyJoinColumns annotations are
                used to specify the column mappings for the map key. If the
                primary key of the referenced entity is a
                simple primary key and the MapKeyJoinColumn annotation is not
                specified, the default values of the
                MapKeyJoinColumn annotation apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1205 | 2 | 7.1 | If Java generic types are not used in the declaration
                of a relationship attribute of type
                java.util.Map, the MapKeyClass annotation must be used to
                specify the type of the key of the map. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1346 | 2 | 7.1 | The MapKey annotation is used to specify the special
                case where the map key is itself the
                primary key or a persistent field or property of the entity that
                is the value of the map. The
                MapKeyClass annotation is not used when MapKey is specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1347 | 2 | 7.2 | When the value type of the map is a basic type or an
                embeddable class, a collection table is
                used to map the map. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1206 | 2 | 7.2 | If Java generic types are not used, the targetClass
                element of the ElementCollection annotation
                must be used to specify the value type for the map. The default
                column mappings for the map value are
                derived according to the default mapping rules for the
                CollectionTable annotation. The Column annotation
                is used to override these defaults for a map value
                of basic type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1348 | 2 | 7.2 | The AttributeOverride(s) and AssociationOverride(s)
                annotations are used to override the
                mappings for a map value that is an embeddable class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1207 | 2 | 7.2 | When the value type of the map is an entity, a join
                table is used to map for a many-to-many
                relationship or, by default, for a one-to-many unidirectional
                relationship. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1208 | 2 | 7.2 | If the relationship is a bidirectional
                one-to-many/many-to-one relationship, by default the map
                is mapped in the table of the entity that is the value of the
                map. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1209 | 2 | 7.2 | If Java generic types are not used, the targetEntity
                element of the OneToMany or ManyToMany
                annotation must be used to specify the value type for the map. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:555 | 2 | 8 | If a persistent field or property other than a
                relationship property is not annotated with a
                mapping annotation, the the following default mappings rules are
                applied in order | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:557 | 2 | 8 | If the type is a class that is annotated with
                        the @Embeddable annotation, it is
                        mapped
                        as if the field or property were annotated with the
                        Embedded annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:556 | 2 | 8 | If the type of the field or property is one of
                        the following, it is mapped in the
                        same
                        way as it would if it were annotated as Basic:
                        Java primitive types, wrappers of primitive types,
                        java.lang.String, java.math.BigInteger,
                        java.math.BigDecimal, java.util.Date,
                        java.util.Calendar,java.sql.Date, java.sql.Time,
                        java.sql.TimeStamp, byte[], Byte[], char[], Character[],
                        enums, any other types that
                        implement
                        Serializable. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:560 | 2 | 8 | It is an error if no annotation is present and
                        none of the above rules apply. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:561 | 2 | 9 | If there is an association between two entities, one of
                the following relationship modeling
                annotations must be applied to the corresponding property or
                field of the referencing entity: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:562 | 2 | 9 | OneToOne | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:563 | 2 | 9 | OneToMany | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:564 | 2 | 9 | ManyToOne | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:565 | 2 | 9 | ManyToMany | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:566 | 2 | 9 | For associations that do not specify the targe type
                (e.g., where Java generic types are not
                used for collections) it is necessary to also specify the entity
                that is the target of the relationship. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1210 | 2 | 9 | Relationships may be bidirectional or unidirectional. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:567 | 2 | 9 | A bidirectional relationship has both an owning side
                and an inverse (non-owning)side | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:568 | 2 | 9 | A unidirectional relationship has only an owning
                side. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:569 | 2 | 9 | The following rules apply to bidirectional
                relationships: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:570 | 2 | 9 | The inverse side of a bidirectional
                        relationship must refer to its owning side by
                        use
                        of the mappedBy element of the OneToOne, OneToMany, or
                        ManyToMany annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:571 | 2 | 9 | The mappedBy element designates the property or
                        field in the entity that is the
                        owner
                        of the relationship. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:572 | 2 | 9 | The many side of one-to-many/many-to-one
                        bidirectional relationships must be the
                        owning
                        side, hence the mappedBy element cannot be specified on
                        the ManyToOne annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:573 | 2 | 9 | For one-to-one bidirectional relationships, the
                        owning side corresponds to the side
                        that contains the corresponding foreign key. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:574 | 2 | 9 | For many-to-many bidirectional relationships,
                        either side may be the owning side. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:575 | 2 | 9 | The cascade=REMOVE specification should only be applied
                to associations that are specified as
                OneToOne or OneToMany. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:576 | 2 | 9 | Applications that apply cascade=REMOVE to other
                assocations are not portable. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1349 | 2 | 9 | Associations that are specified as OneToOne or
                OneToMany support use of the orphanRemoval
                option. The following behaviors apply when orphanRemoval is in
                effect: | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1349.1 | 2 | 9 | If an entity that is the target of the
                        relationship is removed from the
                        relationship
                        (by setting the relationship to null or removing the
                        entity from the relationship
                        collection),
                        the remove operation will be applied to the entity being
                        orphaned. The remove operation is
                        applied at the time of the flush operation. The
                        orphanRemoval functionality is intended for
                        entities that are privately "owned" by their parent
                        entity. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1349.2 | 2 | 9 | If the entity being orphaned is a detached,
                        new, or removed entity, the semantics
                        of
                        orphanRemoval do not apply. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1349.3 | 2 | 9 | If the remove operation is applied to a managed
                        source entity, the remove operation
                        will be cascaded to the relationship target in
                        accordance with the rules of section 3.2.3,
                        (and
                        hence it is not necessary to specify cascade=REMOVE for
                        the relationship). If the parent is
                        detached or new or was previously removed before the
                        orphan was associated with it, the
                        remove
                        operation is not
                        applied to the entity being orphaned. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1211 | 2 | 9 | In addition, this specification also requires support
                for the following alternative mapping
                strategies: | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1212 | 2 | 9 | The mapping of unidirectional one-to-many
                        relationships by means of foreign key
                        mappings. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1214 | 2 | 9 | The JoinColumn annotation or corresponding XML
                        element must be used to specify such
                        non-default
                        mappings. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1213 | 2 | 9 | The mapping of unidirectional and bidirectional
                        one-to-one relationships and
                        bidirectional
                        many-to-one/one-to-many relationships by means of join
                        table mappings. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1211.1 | 2 | 9 | The JoinTable annotation or corresponding XML
                        element must be used to specify such
                        non-default mappings | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:577 | 2 | 9 | Such mapping annotations must be specified on the
                owning side of the relationship.
                Any overriding of mapping defaults must be consistent with the
                relationship modeling annotation that is
                specified. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1350 | 2 | 9 | If there are no associated entities for a multi-valued
                relationship of an entity fetched from
                the database, the persistence provider is responsible for
                returning an empty collection as the value of
                the relationship. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:578 | 2 | 10.1 | Assuming that:
                Entity A references a single instance of Entity B.
                Entity B references a single instance of Entity A.
                Entity A is specified as the owner of the relationship.
                The following mapping defaults apply:
                Entity A is mapped to a table named A.
                Entity B is mapped to a table named B.
                Table A contains a foreign key to table B. The foreign key
                column name is formed as the concatenation
                of the following: the name of the relationship property or field
                of entity A; "_"; the
                name of the primary key column in table B. The foreign key
                column has the same type as the
                primary key of table B and there is a unique key constraint on
                it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:579 | 2 | 10.2 | Assuming that:
                Entity A references a single instance of Entity B.
                Entity B references a collection of Entity A.
                Entity A must be the owner of the relationship.
                The following mapping defaults apply:
                Entity A is mapped to a table named A.
                Entity B is mapped to a table named B.
                Table A contains a foreign key to table B. The foreign key
                column name is formed as the concatenation
                of the following: the name of the relationship property or field
                of entity A; "_"; the name of the
                primary key column in table B. The foreign key column has the
                same type as the
                primary key of table B. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1351 | 2 | 10.2 | When the relationship is modeled as a java.util.Map,
                “Entity B references a collection of
                Entity A” means that Entity B references a map collection in
                which the type of the Map value is Entity
                A. The map key may be a basic type, embeddable class, or an
                entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:580 | 2 | 10.3 | Assuming that:
                Entity A references a single instance of Entity B.
                Entity B does not reference Entity A.
                A unidirectional relationship has only an owning side, which in
                this case must be Entity A.
                The unidirectional single-valued relationship modeling case can
                be specified as either a unidirectional
                OneToOne or as a unidirectional ManyToOne relationship. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:581 | 2 | 10.3.1 | The following mapping defaults apply:
                Entity A is mapped to a table named A.
                Entity B is mapped to a table named B.
                Table A contains a foreign key to table B. The foreign key
                column name is formed as the concatenation
                of the following: the name of the relationship property or field
                of entity A; "_"; the
                name of the primary key column in table B. The foreign key
                column has the same type as the
                primary key of table B and there is a unique key constraint on
                it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:582 | 2 | 10.3.2 | The following mapping defaults apply:
                Entity A is mapped to a table named A.
                Entity B is mapped to a table named B.
                Table A contains a foreign key to table B. The foreign key
                column name is formed as the concatenation
                of the following: the name of the relationship property or field
                of entity A; "_"; the
                name of the primary key column in table B. The foreign key
                column has the same type as the
                primary key of table B. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:583 | 2 | 10.4 | Assuming that:
                Entity A references a collection of Entity B.
                Entity B references a collection of Entity A.
                Entity A is the owner of the relationship.
                The following mapping defaults apply:
                Entity A is mapped to a table named A.
                Entity B is mapped to a table named B.
                There is a join table that is named A_B (owner name first). This
                join table has two foreign key
                columns. One foreign key column refers to table A and has the
                same type as the primary key of
                table A. The name of this foreign key column is formed as the
                concatenation of the following:
                the name of the relationship property or field of entity B; "_";
                the name of the primary key column
                in table A. The other foreign key column refers to table B and
                has the same type as the primary
                key of table B. The name of this foreign key column is formed as
                the concatenation of the
                following: the name of the relationship property or field of
                entity A; "_"; the name of the primary
                key column in table B. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:584 | 2 | 10.5 | Assuming that:
                Entity A references a collection of Entity B.
                Entity B does not reference Entity A.
                A unidirectional relationship has only an owning side, which in
                this case must be Entity A.
                The unidirectional multi-valued relationship modeling case can
                be | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:585 | 2 | 10.5.1 | The following mapping defaults apply:
                Entity A is mapped to a table named A.
                Entity B is mapped to a table named B.
                There is a join table that is named A_B (owner name first). This
                join table has two foreign key
                columns. One foreign key column refers to table A and has the
                same type as the primary key of
                table A. The name of this foreign key column is formed as the
                concatenation of the following:
                the name of entity A; "_"; the name of the primary key column in
                table A. The other foreign
                key column refers to table B and has the same type as the
                primary key of table B and there is a
                unique key constraint on it. The name of this foreign key column
                is formed as the concatenation
                of the following: the name of the relationship property or field
                of entity A; "_"; the name
                of the primary key column in table B. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:586 | 2 | 10.5.2 | Entity A is mapped to a table named A.
                Entity B is mapped to a table named B.
                There is a join table that is named A_B (owner name first). This
                join table has two foreign key
                columns. One foreign key column refers to table A and has the
                same type as the primary key of
                table A. The name of this foreign key column is formed as the
                concatenation of the following:
                the name of entity A; "_"; the name of the primary key column in
                table A. The other foreign
                key column refers to table B and has the same type as the
                primary key of table B. The name of
                this foreign key column is formed as the concatenation of the
                following: the name of the relationship
                property or field of entity A; "_"; the name of the primary key
                column in table B. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1217 | 2 | 11 | An entity may inherit from another entity class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1218 | 2 | 11 | Entities support inheritance,polymorphic associations,
                and polymorphic queries. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1219 | 2 | 11 | Both abstract and concrete classes can be entities. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1352 | 2 | 11 | Both abstract and concrete classes can be annotated
                with the Entity annotation, mapped as
                entities, and queried for as entities. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1220 | 2 | 11 | Entities can extend non-entity classes and non-entity
                classes can extend entity classes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1353 | 2 | 11.1 | An abstract class can be specified as an entity. An
                abstract entity differs from a concrete
                entity only in that it cannot be directly instantiated. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:588 | 2 | 11.1 | An abstract entity class is annotated with the Entity
                annotation or denoted in the XML
                descriptor as an entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:588.1 | 2 | 11.1 | An abstract entity is mapped as an entity and can be
                the target of queries (which will operate
                over and/or retrieve instances of its concrete subclass). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:593 | 2 | 11.2 | An entity may inherit from a superclass that provides
                persistent entity state and mapping
                information, but which is not itself an entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:594 | 2 | 11.2 | A mapped superclass, unlike an entity, is not queryable
                and must not be passed as an argument
                to
                EntityManager or Query operations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1354 | 2 | 11.2 | Persistent relationships defined by a mapped superclass
                must be unidirectional. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:595 | 2 | 11.2 | An mapped superclass cannot be the target of a
                persistent relationship. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:596 | 2 | 11.2 | Both abstract or concrete classes may be specified as
                mapped superclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:597 | 2 | 11.2 | The MappedSuperclass annotation (or mapped-superclass
                XML descriptor element) is used to
                designate an mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:598 | 2 | 11.2 | A class designated as an mapped superclass has no
                separate table defined for it. Its mapping
                information is applied to entities that inherit from it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:599 | 2 | 11.2 | A classes designated as mapped superclass can be mapped
                in the same way as an entity except
                that
                the mapping will only apply to its subclesses since no table
                exists for the mapped superclass. When
                applied to the subclasses the inherited mappings will apply in
                the context of the subclass tables. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:600 | 2 | 11.2 | Mapping information may be overridden in such
                subclasses by using the AttributeOverride and
                AssociationOverride annotations or corresponding XML elements. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:601 | 2 | 11.2 | All other entity mapping defaults apply equally to a
                class designated as mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:589 | 2 | 11.3 | An entity can have a non-entity superclass, which may
                be either a concrete or abstract class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:589 | 2 | 11.3 | The superclass must not be an embeddable class
                        or id class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:590 | 2 | 11.3 | The state of a non-entity superclass is not
                persistent. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:591 | 2 | 11.3 | Any state inherited from non-entity superclasses is
                non-persistent in an inheriting entity
                class. This non-persistent state is not managed by the entity
                manager. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1355 | 2 | 11.3 | Any annotations on such superclasses are ignored. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:592 | 2 | 11.3 | Non-entity classes cannot be passed as arguments to
                methods of the EntityManager or Query
                interfaces and cannot bear mapping information. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:592.1 | 2 | 11.3 | This includes instances of a non-entity class
                        that extends an entity class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:602 | 2 | 12 | There are three basic strategies that are used when
                mapping a class or class hierarchy to a
                relational database schema: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:603 | 2 | 12 | a single table per class hierarchy | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:605 | 2 | 12 | a joined subclass strategy, in which fields
                        that are specific to a subclass are
                        mapped
                        to a separate table than the fields that are common to
                        the parent class, and a join is
                        performed
                        to instantiate
                        the subclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:604 | 2 | 12 | a table per concrete entity class | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1356 | 2 | 12 | An implementation is required to support the single table per
                class hierarchy inheritance mapping
                strategy and the joined subclass strategy. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1357 | 2 | 12.1 | all the classes in a hierarchy are mapped to a single table. The
                table has a column that
                serves as a “discriminator column”, that is, a column whose
                value identifies the specific subclass to
                which the instance that is represented by the row belongs. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1358 | 2 | 12.1 | It has the drawback, however, that it requires that the columns
                that correspond to state specific to the
                subclasses be nullable. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1359 | 2 | 12.2 | In the joined subclass strategy, the root of the class
                hierarchy is represented by a single
                table. Each subclass
                is represented by a separate table that contains those fields
                that are specific to the subclass (not
                inherited from its superclass), as well as the column(s) that
                represent its primary key. The primary key
                column(s) of the subclass table serves as a foreign key to the
                primary key of the superclass table. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1360 | 2 | 12.2 | It has the drawback that it requires that one or more
                join operations be performed to
                instantiate instances of a subclass. In deep class hierarchies,
                this may lead to unacceptable
                performance. Queries that range over the class hierarchy
                likewise require joins. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1361 | 2 | 12.3 | each class is mapped to a separate table. All properties of the
                class, including inherited properties,
                are mapped to columns of the table for the class. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1362 | 2 | 13 | This specification requires the following with regard
                to the interpretation of the names
                referencing database
                objects. These names include the names of tables, columns, and
                other database elements. Such
                names also include names that result from defaulting (e.g., a
                table name that is defaulted from an
                entity
                name or a column name that is defaulted from a field or property
                name). | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1363 | 2 | 13 | By default, the names of database objects must be treated as
                undelimited identifiers and passed to the
                database as such. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1369 | 2 | 13 | To specify delimited identifiers, one of the following
                approaches must be used: | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1369.1 | 2 | 13 | It is possible to specify that all database identifiers
                        in use for a persistence unit be
                        treated
                        as
                        delimited identifiers by specifying the
                        
                        element within the
                        persistence-unit-defaults element of the
                        object/relational xml mapping file. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1369.2 | 2 | 13 | If the
                        
                        element is specified, it cannot be overridden. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1369.3 | 2 | 13 | It is possible to specify on a per-name basis that a
                        name for a database object is to be
                        interpreted
                        as a delimited identifier as follows: Using annotations,
                        a name is specified as a delimited
                        identifier by enclosing the name within double quotes,
                        whereby the inner quotes are escaped | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1369.4 | 2 | 13 | It is possible to specify on a per-name basis that a
                        name for a database object is to be
                        interpreted
                        as a delimited identifier as follows: When using XML, a
                        name is specified as a delimited
                        identifier by use of double quotes | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370 | 2 | 13 | The following annotations contain elements whose values
                correspond to names of database identifiers
                and for which the above rules apply, including when their use is
                nested within that of other
                annotations: | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.1 | 2 | 13 | EntityResult (discriminatorColumn element) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.2 | 2 | 13 | FieldResult (column element) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.3 | 2 | 13 | ColumnResult (name element) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.4 | 2 | 13 | CollectionTable (name, catalog, schema
                        elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.5 | 2 | 13 | Column (name, columnDefinition, table elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.6 | 2 | 13 | DiscriminatorColumn (name, columnDefinition
                        elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.7 | 2 | 13 | ForeignKey (name, foreignKeyDefinition
                        elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.8 | 2 | 13 | Index (name, columnList elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.9 | 2 | 13 | JoinColumn (name, referencedColumnName,
                        columnDefinition, table elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.10 | 2 | 13 | JoinTable (name, catalog, schema elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.11 | 2 | 13 | MapKeyColumn (name, columnDefinition, table
                        elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.12 | 2 | 13 | MapKeyJoinColumn (name, referencedColumnName,
                        columnDefinition, table elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.13 | 2 | 13 | NamedStoredProcedureQuery (procedureName
                        element) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.14 | 2 | 13 | OrderColumn (name, columnDefinition elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.15 | 2 | 13 | PrimaryKeyJoinColumn (name,
                        referencedColumnName, columnDefinition elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.16 | 2 | 13 | 
 | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.17 | 2 | 13 | SecondaryTable (name, catalog, schema elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.18 | 2 | 13 | SequenceGenerator (sequenceName, catalog,
                        schema elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.19 | 2 | 13 | StoredProcedureParameter (name element) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.20 | 2 | 13 | Table (name, catalog, schema elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.21 | 2 | 13 | TableGenerator (table, catalog, schema,
                        pkColumnName, valueColumnName elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1370.22 | 2 | 13 | UniqueConstraint (name, columnNames elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371 | 2 | 13 | The following XML elements and types contain elements or
                attributes whose values correspond to
                names of database identifiers and for which the above rules
                apply: | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.1 | 2 | 13 | entity-mappings (schema, catalog elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.2 | 2 | 13 | persistence-unit-defaults (schema, catalog
                        elements) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.3 | 2 | 13 | collection-table (name, catalog, schema
                        attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.4 | 2 | 13 | column (name, table, column-definition
                        attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.5 | 2 | 13 | column-result (name attribute) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.6 | 2 | 13 | discriminator-column (name, column-definition
                        attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.7 | 2 | 13 | entity-result (discriminator-column attribute) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.8 | 2 | 13 | field-result (column attribute) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.9 | 2 | 13 | foreign-key (name, foreign-key-definition
                        attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.10 | 2 | 13 | index (name attribute, column-list element) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.11 | 2 | 13 | join-column (name, referenced-column-name,
                        column-definition, table attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.12 | 2 | 13 | join-table (name, catalog, schema attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.13 | 2 | 13 | map-key-column (name, column-definition, table
                        attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.14 | 2 | 13 | map-key-join-column (name,
                        referenced-column-name, column-definition, table
                        attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.15 | 2 | 13 | named-stored-procedure-query (procedure-name
                        attribute) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.16 | 2 | 13 | order-column (name, column-definition
                        attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.17 | 2 | 13 | primary-key-join-column (name,
                        referenced-column-name, column-definition
                        attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.18 | 2 | 13 | secondary-table (name, catalog, schema
                        attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.19 | 2 | 13 | sequence-generator (sequence-name, catalog,
                        schema attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.20 | 2 | 13 | stored-procedure-parameter (name attribute) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.21 | 2 | 13 | table (name, catalog, schema attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.22 | 2 | 13 | table-generator (table, catalog, schema,
                        pk-column-name, value-column-name
                        attributes) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1371.23 | 2 | 13 | unique-constraint (name attribute, column-name
                        element) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:606 | 3 | 1.1 | The persist, merge, remove, and refresh methods must be
                invoked within a transaction
                context when an entity manager with a transaction-scoped
                persistence context is used. If there is no
                transaction context, the
                jakarta.persistence.TransactionRequiredException is thrown. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1313 | 3 | 1.1 | Methods that specify a lock mode other than
                LockModeType.NONE must be invoked within a
                transaction. If there is no transaction or if the entity manager
                has not been joined to the transaction,
                the jakarta.persistence.TransactionRequiredException is thrown. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:607 | 3 | 1.1 | The find method (provided it is invoked without a lock
                or invoked with LockModeType.NONE)
                and the getReference method are not required to be invoked
                within a transaction. If an entity manager
                with transaction-scoped persistence context is in use, the
                resulting entities will be detached; if an
                entity manager with an extended persistence context is used,
                they will be managed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:608 | 3 | 1.1 | The Query, TypedQuery, CriteriaBuilder, Metamodel, and
                EntityTransaction
                objects obtained from an entity manager are valid while that
                entity manager is open. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:609 | 3 | 1.1 | If the argument to the createQuery method is not a
                valid Java Persistence query string or a
                valid
                CriteriaQuery object, the IllegalArgumentException may be thrown
                or the query execution
                will fail and a PersistenceException will be thrown. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1372 | 3 | 1.1 | If the result class specification of a Java Persistence query
                language query is incompatible with the
                result
                of the query, the IllegalArgumentException may be thrown when
                the createQuery method is invoked or the
                query
                execution will fail and a PersistenceException will be thrown
                when the query is executed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:610 | 3 | 1.1 | If a native query is not a valid query for the database
                in use or if the results set
                specification is incompatible with the result of the query, the
                query execution will fail and a
                PersistenceException will be thrown when the query is executed.
                The PersistenceException should wrap the
                underlying database exception when possible. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:611 | 3 | 1.1 | Runtime exceptions thrown by the methods of the
                EntityManager interface other than the Lock-
                TimeoutException will cause the current transaction to be marked
                for rollback if the persistence
                context is joined to that transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:612 | 3 | 1.1 | The methods close, isOpen, joinTransaction and
                getTransaction are used to managed
                application-managed entity managers and their life cycle. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1373 | 3 | 1.1 | A property defined by this specification must be
                observed by the provider unless otherwise
                explicitly stated. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1374 | 3 | 1.1 | A hint specifies a preference on the part of the
                application. While a hint defined by this
                specification should be observed by the provider if possible, a
                hint may or may not always be observed.
                A portable application must not depend on the observance of a
                hint. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:613 | 3 | 2 | Entity Instance's Life Cycle: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:614 | 3 | 2 | A new entity instance has no persistent
                        identity and is not yet associated with a
                        persistence context. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:615 | 3 | 2 | A managed entity instance is an instance with a
                        persistent identity that is
                        currently
                        associated with a persistence context. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:616 | 3 | 2 | A detached entity is an instance with a
                        persistent identity that is not (or no
                        longer)
                        associated with a persistence context. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:617 | 3 | 2 | A removed entity instance is an instance with a
                        persistent identity associated with
                        a
                        persistence context that will be removed from the
                        database. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1375 | 3 | 2.1 | Entity instances are created by means of the new
                operation. An entity instance, when first
                created by new is not yet persistent. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:618 | 3 | 2.2 | A new entity instance becomes both managed and
                persistent by
                invoking the persist method on it or by cascading the persist
                operation. The semantics of the persist
                operation, applied to an entity X, are as follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:619 | 3 | 2.2 | If X is a new entity, it becomes managed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:620 | 3 | 2.2 | The entity X will be entered into the database
                        at or before transaction commit or
                        as a
                        result of the flush operation. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:621 | 3 | 2.2 | If X is a preexisting managed entity, it is
                        ignored by the persist operation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:622 | 3 | 2.2 | However, the persist operation is cascaded to
                        entities referenced by X, if the
                        relationships from X to these other entities are
                        annotated with the cascade=PERSIST
                        annotation
                        element value or specified with the equivalent XML
                        descriptor element. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:623 | 3 | 2.2 | However, the persist operation is cascaded to
                        entities referenced by X, if the
                        relationships from X to these other entities are
                        annotated with the cascade=ALL annotation
                        element value or specified with the equivalent XML
                        descriptor element. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:624 | 3 | 2.2 | If X is a removed entity, it becomes managed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:625 | 3 | 2.2 | If X is a detached object, an
                        IllegalArgumentException will be thrown by the
                        persist
                        operation (or the transaction comit will fail). | true | 
 | true | technology | removed | true | 
| PERSISTENCE:SPEC:618.1 | 3 | 2.2 | If X is a detached object, the
                        EntityExistsException may be thrown when the persist
                        operation is invoked | true | 
 | true | technology | removed | true | 
| PERSISTENCE:SPEC:618.2 | 3 | 2.2 | If X is a detached object, the
                        EntityExistsException or another
                        PersistenceException
                        may be thrown at flush or commit time. | true | 
 | true | technology | removed | true | 
| PERSISTENCE:SPEC:626 | 3 | 2.2 | For all entities Y referenced by a relationship
                        from X, if the relationship to Y
                        has
                        been annotated with the cascade element value
                        cascade=PERSIST, the persist operation is
                        applied
                        to Y. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:627 | 3 | 2.2 | For all entities Y referenced by a relationship
                        from X, if the relationship to Y
                        has
                        been annotated with the cascade element value
                        cascade=ALL, the persist operation is applied
                        to
                        Y. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:628 | 3 | 2.3 | A managed entity instance becomes removed by invoking
                the remove method on it or by cascading
                the remove operation. The semantics of the remove operation,
                applied to an entity X, are as follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:629 | 3 | 2.3 | If X is a new entity, it is ignored by the
                        remove operation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:630 | 3 | 2.3 | However, the remove operation is cascaded to
                        entities referenced by X, if the
                        relationship from X to these other entities is annotated
                        with cascade=REMOVE annotation
                        element. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:631 | 3 | 2.3 | However, the remove operation is cascaded to
                        entities referenced by X, if the
                        relationship from X to these other entities is annotated
                        with cascade=ALL annotation
                        element. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:632 | 3 | 2.3 | If X is a managed entity, the remove operation
                        causes it to become removed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:633 | 3 | 2.3 | The remove operation is cascaded to entities
                        referenced by X, if the relationship
                        from
                        X to these other entities is annotated with
                        cascade=REMOVE annotation element value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:634 | 3 | 2.3 | The remove operation is cascaded to entities
                        referenced by X, if the relationship
                        from
                        X to these other entities is annotated with cascade=ALL
                        annotation element value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:635 | 3 | 2.3 | If X is a detached entity, an
                        IllegalArgumentException will be thrown by the remove
                        operation (or the transaction commit will fail). | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:636 | 3 | 2.3 | If X is a removed entity, it is ignored by the
                        remove operation. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:637 | 3 | 2.3 | A removed entity X will be removed from the
                        database at or before transaction
                        commit or
                        as a result of the flush operation. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1376 | 3 | 2.3 | After an entity has been removed, its state (except for
                generated state) will be that of the
                entity at the point at which the remove operation was called. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1275 | 3 | 2.4 | a persistence context of type
                SynchronizationType.UNSYNCHRONIZED or an application-managed
                persistence context that has been created outside the scope of
                the current transaction will only be
                synchronized to the database if it has been joined to the
                current transaction by the application’s use
                of the EntityManager joinTransaction method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:639 | 3 | 2.4 | The state of persistent entities is synchronized with
                the database at transaction commit. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1377 | 3 | 2.4 | An update to the state of an entity includes both the assignment
                of a new value to a persistent property
                or field of the entity as well as the modification of a mutable
                value of a persistent property or field.
                This includes, for example. modifications to persistent
                attributes of type char[] and byte[]. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1378 | 3 | 2.4 | Synchronization to the database does not involve a
                refresh of any managed entities unless the
                refresh operation is explicitly invoked on those entities or
                cascaded to them as a result of the
                specification of the cascade=REFRESH annotation element value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1379 | 3 | 2.4 | Synchronization to the database does not involve a
                refresh of any managed entities unless the
                refresh operation is explicitly invoked on those entities or
                cascaded to them as a result of the
                specification of the cascade=ALL annotation element value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:640 | 3 | 2.4 | The persistence provider runtime is permitted to
                perform synchronization to the database at
                other times as well when a transaction is active and the
                persistence context is joined to the
                transaction. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1380 | 3 | 2.4 | The flush method can be used by the application to
                force synchronization. It applies to
                entities associated with the persistence context. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1314 | 3 | 2.4 | The setFlushMode methods of the Entity-
                Manager, Query, TypedQuery, and StoredProcedureQuery interfaces can be
                used to
                control synchronization semantics. If FlushModeType.COMMIT is
                specified, flushing will occur at
                transaction commit; the persistence provider is permitted, but
                not required, to perform to flush at
                other times. If there is no transaction active or if the
                persistence context has not been joined to the
                current transaction, the persistence provider must not flush to
                the database. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:641 | 3 | 2.4 | The semantics of the flush operation, applied to entity
                X are as follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:642 | 3 | 2.4 | If X is a managed entity, it is synchronized to
                        the database. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:643 | 3 | 2.4 | For all entities Y referenced by a relationship
                        from X, if the relationship to Y
                        has
                        been annotated with the cascade element value
                        cascade=PERSIST, the persist operation is
                        applied
                        to Y. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:644 | 3 | 2.4 | For all entities Y referenced by a relationship
                        from X, if the relationship to Y
                        has
                        been annotated with the cascade element value
                        cascade=ALL, the persist operation is applied
                        to
                        Y. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:645 | 3 | 2.4 | For any entity Y referenced by a relationship
                        from X, where the relationship to Y
                        has
                        not been annotated with the cascade element value
                        cascade=PERSIST or cascade=ALL | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:646 | 3 | 2.4 | If Y is new or removed, an
                        IllegalStateException will be thrown by the flush
                        operation
                        (and the transaction marked for rollback) or the
                        transaction commit will fail. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:647 | 3 | 2.4 | If Y is detached, the semantics depend upon the
                        ownership of the relationship. If X
                        owns the relationship, any changes to the relationship
                        are synchronized with the database;
                        otherwise, if Y owns the relationships, the behavior is
                        undefined. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:648 | 3 | 2.4 | If X is a removed entity, it is removed from
                        the database. No cascade options are
                        relevant | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1222 | 3 | 2.5 | The state of a managed entity instance is refreshed
                from the database by invoking the refresh
                method on it or by cascading the refresh operation. The
                semantics of the refresh operation, applied to
                an entity X are as follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1223 | 3 | 2.5 | If X is a managed entity, the state of X is
                        refreshed from the database,
                        overwriting
                        changes made to the entity, if any. The refresh
                        operation is cascaded to entities referenced
                        by
                        X, if the relationship from X to these other entities is
                        annotated with the cascade=REFRESH
                        annotation element value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1222.1 | 3 | 2.5 | If X is a managed entity, the state of X is
                        refreshed from the database,
                        overwriting
                        changes made to the entity, if any. The refresh
                        operation is cascaded to entities referenced
                        by
                        X, if the relationship from X to these other entities is
                        annotated with the cascade=ALL
                        annotation element value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1222.2 | 3 | 2.5 | If X is a new, detached, or removed entity, the
                        IllegalArgumentException is thrown | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1224 | 3 | 2.6 | An entity instance is removed from the persistence
                context by invoking the detach method on it
                or cascading the detach operation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1225 | 3 | 2.6 | Changes made to the entity, if any (including removal
                of the entity), will not be synchronized
                to the database after such eviction has taken place. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1226 | 3 | 2.6 | Applications must use the flush method prior to the
                detach method to ensure portable semantics
                if changes have been made to the entity (including removal of
                the entity). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1227 | 3 | 2.6 | portable applications must not assume that changes have
                not been written to the database if the
                flush method has not been called prior to detach. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1227 | 3 | 2.6 | The semantics of the detach operation, applied to an
                entity X are as follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1228 | 3 | 2.6 | If X is a managed entity, the detach operation
                        causes it to become detached. The
                        detach
                        operation
                        is cascaded to entities referenced by X, if the
                        relationships from X to these other entities
                        is
                        annotated with the cascade=DETACH annotation element
                        value. Entities which
                        previously
                        referenced X will continue to reference X. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1227.1 | 3 | 2.6 | If X is a managed entity, the detach operation
                        causes it to become detached. The
                        detach
                        operation
                        is cascaded to entities referenced by X, if the
                        relationships from X to these other entities
                        is
                        annotated with the cascade=ALL annotation element value.
                        Entities which
                        previously
                        referenced X will continue to reference X. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1229 | 3 | 2.6 | If X is a new or detached entity,it is ignored
                        by the detach operation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1230 | 3 | 2.6 | If X is a removed entity, the detach operation
                        is cascaded to entities referenced
                        by X,
                        if the
                        relationships from X to these other entities is
                        annotated with the cascade=DETACH annotation
                        element value. Entities which previously referenced X
                        will continue to reference X.
                        Portable
                        applications should not pass removed entities that have
                        been detached from the persistence
                        context to
                        further EntityManager operations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1230 | 3 | 2.6 | If X is a removed entity, the detach operation
                        is cascaded to entities referenced
                        by X,
                        if the
                        relationships from X to these other entities is
                        annotated with the cascade=ALL
                        annotation element value. Entities which previously
                        referenced X will continue to reference
                        X.
                        Portable
                        applications should not pass removed entities that have
                        been detached from the persistence
                        context to
                        further EntityManager operations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1381 | 3 | 2.7 | A detached entity results from transaction commit if a
                transaction-scoped persistence context is used;
                from transaction rollback; from detaching the entity from the
                persistence context; from
                clearing the persistence context; from closing an entity manager | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:657 | 3 | 2.7 | A detached entity results
                from serializing an entity or otherwise passing an entity by
                value—e.g., to a separate application tier,
                through a remote interface, etc. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1382 | 3 | 2.7 | Detached entity instances continue to live outside of the
                persistence context in which they were
                persisted
                or retrieved. Their state is no longer guaranteed to be
                synchronized with the database state. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:649 | 3 | 2.7 | The application may access the available state of
                available detached entity instances after the
                persistence context ends. The available state includes: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:650 | 3 | 2.7 | Any persistent field or property not marked
                        fetch=LAZY | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:651 | 3 | 2.7 | Any persistent field or property that was
                        accessed by the application. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:652 | 3 | 2.7 | If the persistent field or property is an association,
                the available state of an associated
                instance may only be safely accessed if the associated instance
                is available. The available instances
                include: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:653 | 3 | 2.7 | All entity instances retrieved using find(). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:654 | 3 | 2.7 | Any entity instances retrieved using a query or
                        explictly requested ina fetch join | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:655 | 3 | 2.7 | Any entity instance for which an instance
                        variable holding non-primary-key
                        persistent
                        state was accessed by the application. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:656 | 3 | 2.7 | Any entity instance that may be reached from
                        another available instance by
                        navigating
                        associations marked fetch=EAGER. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:658 | 3 | 2.7.1 | The merge operation allows for the propagation of state
                from detached entities onto persistent
                entities managed by the entity manager. The semantics of the
                merge operation applied to an entity X are
                as follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:659 | 3 | 2.7.1 | If X is a detached entity, the state of X is
                        copied onto a pre-existing managed
                        entity
                        instance X' of the same identity or a new managed copy
                        X' of X is created. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:660 | 3 | 2.7.1 | If X is a new entity instance, a new managed
                        entity instance X' is created and the
                        state of X is copied into the new managed entity
                        instance X'. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:661 | 3 | 2.7.1 | If X is a removed entity instance, an
                        IllegalArgumentException will be thrown by
                        the
                        merge operation (or the transaction commit will fail). | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:662 | 3 | 2.7.1 | If X is a managed entity, it is ignored by the
                        merge operation, however, the merge
                        operation is cascaded to entities referenced by
                        relationships from X if these relationships
                        have
                        been annotated with the cascade element value
                        cascade=MERGE annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:663 | 3 | 2.7.1 | If X is a managed entity, it is ignored by the
                        merge operation, however, the merge
                        operation is cascaded to entities referenced by
                        relationships from X if these relationships
                        have
                        been annotated with the cascade element value
                        cascade=ALL annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:664 | 3 | 2.7.1 | For all entities Y referenced by relationships
                        from X having the cascade element
                        value
                        cascade=MERGE, Y is merged recursively as Y'. For all
                        such Y referenced by X, X' is set to
                        reference Y'. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:665 | 3 | 2.7.1 | For all entities Y referenced by relationships
                        from X having the cascade element
                        value
                        cascade=ALL, Y is merged recursively as Y'. For all such
                        Y referenced by X, X' is set to
                        reference Y'. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:658.1 | 3 | 2.7.1 | If X is an entity merged to X', with a
                        reference to another entity Y, where
                        cascade=MERGE
                        is not specified, then navigation of the same
                        association from X' yields a
                        reference to a managed object Y' with the same
                        persistent identity as Y. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:658.2 | 3 | 2.7.1 | If X is an entity merged to X', with a
                        reference to another entity Y, where
                        cascade=ALL
                        is not specified, then navigation of the same
                        association from X' yields a
                        reference to a managed object Y' with the same
                        persistent identity as Y. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1383 | 3 | 2.7.1 | The persistence provider must not merge fields marked
                LAZY that have not been fetched: it must
                ignore such fields when merging. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:666 | 3 | 2.7.1 | Any Version columns used by the entity must be checked
                by the persistence runtime
                implementation during the merge operation and/or at flush or
                commit time | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1231 | 3 | 2.7.2 | Serializing entities and merging those entities back
                into a persistence context may not be
                interoperable across vendors when lazy properties or fields
                and/or relationships are used. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1384 | 3 | 2.7.2 | A vendor is required to support the serialization and
                subsequent deserialization and merging of
                detached entity instances (which may contain lazy properties or
                fields and/or relationships that have
                not been
                fetched) back into a separate JVM instance of that vendor's
                runtime, where both runtime instances have
                access to the entity classes and any required vendor persistence
                implementation classes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1232 | 3 | 2.7.2 | When interoperability across vendors is required, the
                application must not use lazy loading. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:667 | 3 | 2.8 | The contains method returns true: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:668 | 3 | 2.8 | If the entity has been retrieved from the
                        database or has returned by the
                        getReference,and has not been removed or detached. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:669 | 3 | 2.8 | If the entity instance is new and the persist
                        method has been called on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:670 | 3 | 2.8 | If the entity instance is new and the persist
                        operation has been cascaded to it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:671 | 3 | 2.8 | The contains method returns false: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:672 | 3 | 2.8 | If the instance is detached. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:673 | 3 | 2.8 | If the remove method has been called on the
                        entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:674 | 3 | 2.8 | If the remove operation has been cascaded to
                        it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:675 | 3 | 2.8 | If the entity instance is new and the persist
                        method has not been called on the
                        entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:676 | 3 | 2.8 | If the entity instance is new and the persist
                        operation has not been cascaded to
                        it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:677 | 3 | 2.8 | Not that the effect of cascading
                persist,merge,remove,or detach is immediately visible to the
                contains method, whereas, the actual
                insertion, modification, or deletion of the database
                representation for the entity may be deferred until
                the end of the transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1385 | 3 | 2.9 | An entity is considered to be loaded if all attributes
                with FetchType.EAGER—whether explictly
                specified or by default—(including relationship and other
                collection-valued attributes) have been
                loaded from the database or assigned by the application. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1386 | 3 | 2.9 | An attribute that is an embeddable is considered to be
                loaded if the embeddable attribute was
                loaded from the database or assigned by the application, and, if
                the attribute references an embeddable
                instance
                (i.e., is not null), the embeddable instance state is known to
                be loaded (i.e., all attributes of the
                embeddable with FetchType.EAGER have been loaded from the
                database or assigned by the application). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1387 | 3 | 2.9 | A collection-valued attribute is considered to be
                loaded if the collection was loaded from the
                database or the value of the attribute was assigned by the
                application, and, if the attribute references
                a collection
                instance (i.e., is not null), each element of the collection
                (e.g. entity or embeddable) is considered
                to be
                loaded. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1388 | 3 | 2.9 | A single-valued relationship attribute is considered to
                be loaded if the relationship attribute
                was loaded from the database or assigned by the application,
                and, if the attribute references an entity
                instance (i.e.,
                is not null), the entity instance state is known to be loaded. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1389 | 3 | 2.9 | A basic attribute is considered to be loaded if its
                state has been loaded from the database or
                assigned by the application. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1390 | 3 | 2.9 | The PersistenceUtil.isLoaded methods can be used to
                determine the load state of an entity
                and its attributes regardless of the persistence unit with which
                the entity is associated. The
                PersistenceUtil.
                isLoaded methods return true if the above conditions hold | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1391 | 3 | 2.9 | The PersistenceUtil.isLoaded methods return false
                otherwise | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1392 | 3 | 2.9 | If the persistence unit is known, the
                PersistenceUnitUtil.isLoaded methods can be used instead. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:678 | 3 | 3 | The enum PersistenceContextType is used to define
                persistence context lifetime scope for
                container-managed entity managers. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:679 | 3 | 3 | By default, the lifetime of the persistence context of
                a container-managed entity manager
                corresponds to the scope of a transaction (i.e., it is of type
                PersistenceContextType.TRANSACTION) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:680 | 3 | 3 | When an extended persistence context is used, the
                extended persistence contexts exists from the
                time the EntityManager instance is created until it is closed.
                This persistence context might span
                multiple transactions and non-transactional invocations of the
                EntityManager. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:681 | 3 | 3 | An EntityManager with an extended persistence context
                maintains its references to the entity
                objects after a transaction has committed.
                Those objects remain managed by the EntityManager and they may
                be updated as managed objects between
                transactions. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1394 | 3 | 3 | Note that when a new transaction is begun, the managed
                objects in an extended persistence
                context are not reloaded from the database. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:682 | 3 | 3 | Navigation from a managed object in an extended
                persistence context results in one or more
                other managed objects regardless of whether a transaction is
                active. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:683 | 3 | 3 | When an EntityManager with an extended persistence
                context is used, the persist, remove, merge
                and refresh operations may be called regardless of whether a
                transaction is active. The effects of these
                operations will be committed to the database when the extended
                persistence context is entlisted in a
                transaction and the transaction commits. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:684 | 3 | 3 | The scope of the persistence context of an
                application-managed entity manager is extended. It
                is the responsibility of the application to manage the lifecycle
                of the persistence context. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1276 | 3 | 3.1 | By default, a container-managed persistence context is
                of SynchronizationType.SYNCHRONIZED
                and is automatically joined to the current transaction. A
                persistence context of SynchronizationType.
                UNSYNCHRONIZED will not be enlisted in the current transaction,
                unless the
                EntityManager joinTransaction method is invoked. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1315 | 3 | 3.1 | By default, an application-managed persistence context
                that is associated with a JTA entity
                manager and
                that is created within the scope of an active transaction is
                automatically joined to that transaction.
                An
                application-managed JTA persistence context that is created
                outside the scope of a transaction or an
                application-managed persistence context of type
                SynchronizationType.UNSYNCHRONIZED
                will not be joined to that transaction unless the EntityManager
                joinTransaction method is
                invoked. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1316 | 3 | 3.1 | An application-managed persistence context associated
                with a resource-local entity manager is
                always automatically joined to any resource-local transaction
                that is begun for that entity manager. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:685 | 3 | 3.2 | The managed entities of a transaction-scoped
                persistence context become detached when the
                transaction commits. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:686 | 3 | 3.2 | The managed entities of an extended persistence context
                remain managed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:687 | 3 | 3.3 | For both transaction-scoped persistence contexts and
                for extended persistence contexts that are
                joined to the current transaction, transaction rollback causes
                all pre-existing managed instances and
                removed instances to become detached. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1317 | 3 | 3.3 | Because a transaction-scoped persistence context’s
                lifetime is scoped to a transaction
                regardless of whether it is joined to that transaction, the
                container closes the persistence context
                upon transaction rollback. However, an extended persistence
                context that is not joined to a
                transaction is unaffected by transaction rollback | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1395 | 3 | 4.1 | Optimistic locking is a technique that is used to
                insure that updates to the database data
                corresponding to the state of an entity are made only when no
                intervening transaction has updated that
                data since the
                entity state was read. This insures that updates or deletes to
                that data are consistent with the current
                state of the database and that intervening updates are not lost.
                Transactions that would cause this
                constraint
                to be violated result in an OptimisticLockException being thrown
                and the transaction
                marked for rollback. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1396 | 3 | 4.1 | Portable applications that wish to enable optimistic
                locking for entities must specify Version
                attributes for those entities—i.e., persistent properties or
                fields annotated with the Version
                annotation
                or specified in the XML descriptor as version attributes. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:690 | 3 | 4.2 | The Version field or property is used by the
                persistence provider to perform optimistic
                locking. It is accessed and/or set by the persistence provider
                in the course of performing lifecycle
                operations on the
                entity instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1397 | 3 | 4.2 | The Version field or property is used by the
                persistence provider to perform optimistic
                locking. It is accessed and/or set by the persistence provider
                in the course of performing lifecycle
                operations on the
                entity instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1398 | 3 | 4.2 | An entity may access the state of its version field or
                property or export a method for use by
                the application to access the version, but must not modify the
                version value. Bulk update statements,
                however, are permitted to set the value of version attributes | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1399 | 3 | 4.2 | With the exception noted in section 4.10, only the
                persistence provider is permitted to set or
                update the value of the version attribute in the object. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1400 | 3 | 4.2 | The version attribute is updated by the persistence
                provider runtime when the object is written
                to the database. All non-relationship fields and properties and
                all relationships owned by the entity
                are
                included in version checks. This includes owned relationships
                maintained in join tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1401 | 3 | 4.2 | The persistence provider's implementation of the merge operation
                must examine the version attribute
                when an entity is being merged and throw an
                OptimisticLockException if it is discovered that
                the object being merged is a stale copy of the entity—i.e. that
                the entity has been updated since the
                entity became detached. Depending on the implementation strategy
                used, it is possible that this
                exception
                may not be thrown until flush is called or commit time,
                whichever happens first. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1402 | 3 | 4.2 | The persistence provider runtime is required to use only the
                version attribute when performing
                optimistic
                lock checking. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1403 | 3 | 4.2 | Persistence provider implementations may provide additional
                mechanisms beside
                version attributes to enable optimistic lock checking. However,
                support for such mechanisms is not
                required of an implementation of this specification. | false | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1404 | 3 | 4.2 | If only some entities contain version attributes, the
                persistence provider runtime is required to check
                those entities for which version attributes have been specified.
                The consistency of the object graph is
                not guaranteed, but the absence of version attributes on some of
                the entities will not stop operations
                from completing. | false | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1405 | 3 | 4.3 | Pessimistic locking guarantees that once a transaction has
                obtained a pessimistic lock on an entity
                instance: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1405.1 | 3 | 4.3 | no other transaction (whether a transaction of an
                        application using the Java Persistence API
                        or
                        any other transaction using the underlying resource) may
                        successfully modify or delete that
                        instance until the transaction holding the lock has
                        ended. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1405.2 | 3 | 4.3 | if the pessimistic lock is an exclusive lock, that same
                        transaction may modify or delete
                        that
                        entity instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1406 | 3 | 4.3 | When an entity instance is locked using pessimistic locking, the
                persistence provider must lock the
                database
                row(s) that correspond to the non-collection-valued persistent
                state of that instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1407 | 3 | 4.3 | If a joined inheritance strategy is used, or if the entity is
                otherwise mapped to a secondary table,
                this entails locking
                the row(s) for the entity instance in the additional table(s). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1408 | 3 | 4.3 | Entity relationships for which the locked entity contains the
                foreign key will also be locked, but not
                the state of the referenced entities (unless those entities are
                explicitly locked). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1409 | 3 | 4.3 | Element collections and relationships for which the entity does
                not
                contain the foreign key (such as relationships that are mapped
                to join tables or unidirectional
                one-to-many relationships for which the target entity contains
                the foreign key) will not be locked by
                default. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1410 | 3 | 4.3 | Element collections and relationships owned by the entity that
                are contained in join tables will be
                locked if the jakarta.persistence.lock.scope property is specified
                with a value of
                PessimisticLockScope.EXTENDED. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1411 | 3 | 4.3 | The state of entities referenced by such relationships will not
                be locked (unless those entities are
                explicitly locked). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1412 | 3 | 4.3 | Locking such a relationship or element collection generally
                locks only the rows in the join table or
                collection
                table for that relationship or collection. This means that
                phantoms will be possible. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1413 | 3 | 4.3 | This specification does not define the mechanisms a persistence
                provider uses to obtain database locks,
                and a portable application should not rely on how pessimistic
                locking is achieved on the database.[39]
                In
                particular, a persistence provider or the underlying database
                management system may lock more rows
                than the ones selected by the application. | false | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1414 | 3 | 4.3 | Whenever a pessimistically locked entity containing a version
                attribute is updated on the database, the
                persistence provider must also update (increment) the entity's
                version column to enable correct
                interaction
                with applications using optimistic locking. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1415 | 3 | 4.3 | Pessimistic locking may be applied to entities that do not
                contain version attributes. However, in this
                case correct interaction with applications using optimistic
                locking cannot be ensured. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:691 | 3 | 4.4 | Lock Modes | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1416 | 3 | 4.4.1 | If transaction T1 calls lock(entity, LockModeType.OPTIMISTIC) on
                a versioned object, the
                entity manager must ensure that neither of the following
                phenomena can occur: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1416.1 | 3 | 4.4.1 | P1 (Dirty read): Transaction T1 modifies a row. Another
                        transaction T2 then reads that row
                        and
                        obtains the modified value, before T1 has committed.
                        Transaction T2 eventually
                        commits successfully; it does not matter whether T1
                        commits or rolls back and whether it
                        does
                        so before or after T2 commits. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1416.2 | 3 | 4.4.1 | P1 (Dirty read): Transaction T1 modifies a row. Another
                        transaction T2 then reads that row
                        and
                        obtains the modified value, before T1 has rolled back.
                        Transaction T2 eventually
                        commits successfully; it does not matter whether T1
                        commits or rolls back and whether it
                        does
                        so before or after T2 commits. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1416.3 | 3 | 4.4.1 | P2 (Non-repeatable read): Transaction T1 reads a row.
                        Another transaction T2 then modifies
                        that
                        row, before T1 has committed. Both transactions
                        eventually commit successfully. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1416.4 | 3 | 4.4.1 | P2 (Non-repeatable read): Transaction T1 reads a row.
                        Another transaction T2 then deletes
                        that
                        row, before T1 has committed. Both transactions
                        eventually commit successfully. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1417 | 3 | 4.4.1 | While with optimistic concurrency concurrency, long-term
                database read locks are typically not
                obtained immediately, a compliant implementation is permitted to
                obtain an immediate lock (so long as
                it is retained until commit completes). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1418 | 3 | 4.4.1 | If the lock is deferred until commit time, it must be retained
                until the commit completes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1419 | 3 | 4.4.1 | The persistence implementation is not required to support
                calling lock(entity, LockModeType.OPTIMISTIC)
                on a non-versioned object. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1420 | 3 | 4.4.1 | When it cannot support such a lock call, it must throw the
                PersistenceException. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1421 | 3 | 4.4.1 | When supported, whether for versioned or non-versioned objects,
                LockModeType.OPTIMISTIC must always
                prevent the phenomena P1 and P2. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1422 | 3 | 4.4.1 | Applications that call lock(entity, LockModeType.OPTIMISTIC) on
                non-versioned objects will not be
                portable. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1423 | 3 | 4.4.1 | If transaction T1 calls lock(entity,
                LockModeType.OPTIMISTIC_FORCE_INCREMENT) on a versioned object,
                the
                entity manager must avoid the phenomena P1 and P2 (as with
                LockModeType.OPTIMISTIC) and must also force
                an update (increment) to the entity's version column. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1234 | 3 | 4.4.1 | A forced version update may be performed immediately,
                or may be deferred until a flush or
                commit. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1424 | 3 | 4.4.1 | If an entity is removed before a deferred version update was to
                have been applied, the forced version
                update is omitted. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1425 | 3 | 4.4.1 | The persistence implementation is not required to support
                calling lock(entity,
                LockModeType.OPTIMISTIC_FORCE_INCREMENT) on a non-versioned
                object. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1426 | 3 | 4.4.1 | When it cannot support such a lock call, it must throw the
                PersistenceException. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1427 | 3 | 4.4.1 | When supported, whether for versioned or non-versioned objects,
                LockModeType.OPTIMISTIC_FORCE_INCREMENT
                must always prevent the phenomena P1 and P2. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1428 | 3 | 4.4.1 | For non-versioned objects, whether or not
                LockModeType.OPTIMISTIC_FORCE_INCREMENT has any additional
                behavior is vendor-specific. | false | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1429 | 3 | 4.4.1 | Applications that call lock(entity,
                LockModeType.OPTIMISTIC_FORCE_INCREMENT) on non-versioned
                objects
                will not be portable. | false | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1430 | 3 | 4.4.1 | For versioned objects, it is permissible for an implementation
                to use
                LockModeType.OPTIMISTIC_FORCE_INCREMENT where
                LockModeType.OPTIMISTIC was requested, but not vice versa. | true | 
 | false | technology | removed | false | 
| PERSISTENCE:SPEC:1431 | 3 | 4.4.1 | If a versioned object is otherwise updated or removed, then the
                implementation must ensure that the
                requirements of LockModeType.OPTIMISTIC_FORCE_INCREMENT are met,
                even if no explicit
                call to EntityManager.lock was made. | true | 
 | false | technology | removed | false | 
| PERSISTENCE:SPEC:1236 | 3 | 4.4.1 | For portability, an application should not depend on
                vendor-specific hints or configuration to
                ensure repeatable read for objects that are not updated or
                removed via any mechanism other than the use
                of version attributes and the EntityManager lock method. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1237 | 3 | 4.4.1 | It should be noted that if an implementation has
                acquired upfront pessimistic locks on some
                database rows, then it is free to ignore lock(entity,
                LockModeType.OPTIMISTIC)) calls on the entity
                objects representing those rows. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1432 | 3 | 4.4.2 | If transaction T1 calls lock(entity,
                LockModeType.PESSIMISTIC_READ) or lock(entity,
                LockModeType.PESSIMISTIC_WRITE)on an object, the entity manager
                must ensure that neither of the
                following phenomena can occur: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1432.1 | 3 | 4.4.2 | P1 (Dirty read): Transaction T1 modifies a row. Another
                        transaction T2 then reads that row
                        and
                        obtains the modified value, before T1 has committed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1432.2 | 3 | 4.4.2 | P1 (Dirty read): Transaction T1 modifies a row. Another
                        transaction T2 then reads that row
                        and
                        obtains the modified value, before T1 has rolled back. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1432.3 | 3 | 4.4.2 | P2 (Non-repeatable read): Transaction T1 reads a row.
                        Another transaction T2 then modifies
                        or
                        deletes that row, before T1 has committed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1432.4 | 3 | 4.4.2 | P2 (Non-repeatable read): Transaction T1 reads a row.
                        Another transaction T2 then modifies
                        or
                        deletes that row, before T1 has rolled back. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1433 | 3 | 4.4.2 | Any such lock must be obtained immediately and retained until
                transaction T1 completes (commits or rolls
                back). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1434 | 3 | 4.4.2 | The persistence implementation must support calling lock(entity,
                LockModeType.PESSIMISTIC_READ) and
                lock(entity, LockModeType.PESSIMISTIC_WRITE)on a non-versioned
                entity as well as on a versioned entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1435 | 3 | 4.4.2 | It is permissible for an implementation to use
                LockModeType.PESSIMISTIC_WRITE where
                LockModeType.PESSIMISTIC_READ was requested, but not vice versa. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1436 | 3 | 4.4.2 | When the lock cannot be obtained, and the database locking
                failure results in transaction-level
                rollback, the provider must throw the PessimisticLockException
                and ensure that the JTA transaction or
                EntityTransaction has been marked for rollback. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1437 | 3 | 4.4.2 | When the lock cannot be obtained, and the database locking
                failure results in only statement-level
                rollback, the provider must throw the LockTimeoutException (and
                must not mark the transaction for
                rollback). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1438 | 3 | 4.4.2 | When an application locks an entity with
                LockModeType.PESSIMISTIC_READ and later updates
                that entity, the lock must be converted to an exclusive lock
                when the entity is flushed to the database.
                If the lock conversion fails, and the database locking failure
                results in transaction-level rollback,
                the
                provider must throw the PessimisticLockException and ensure that
                the JTA transaction or
                EntityTransaction has been marked for rollback. When the lock
                conversion fails, and the database locking
                failure results in only statement-level rollback, the provider
                must throw the LockTimeoutException
                (and must not mark the transaction for rollback). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1439 | 3 | 4.4.2 | When lock(entity, LockModeType.PESSIMISTIC_READ), lock(entity,
                LockModeType.PESSIMISTIC_WRITE), or
                lock(entity, LockModeType.PESSIMISTIC_FORCE_INCREMENT)is invoked
                on a versioned entity that is already
                in the persistence context, the
                provider must also perform optimistic version checks when
                obtaining the lock. An OptimisticLockException
                must be thrown if the version checks fail. Depending on the
                implementation strategy
                used by the provider, it is possible that this exception may not
                be thrown until flush is called or
                commit time, whichever occurs first. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1440 | 3 | 4.4.2 | The persistence implementation is not required to support
                calling lock(entity,
                LockModeType.PESSIMISTIC_FORCE_INCREMENT) on a non-versioned
                object. When it cannot support such a lock
                call, it must throw the PersistenceException. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1441 | 3 | 4.4.2 | When supported, whether for versioned or non-versioned objects,
                LockModeType.PESSIMISTIC_FORCE_INCREMENT
                must always prevent the phenomena P1 and P2. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1442 | 3 | 4.4.2 | For non-versioned objects, whether or not
                LockModeType.PESSIMISTIC_FORCE_INCREMENT has any additional
                behavior is vendor-specific. | false | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1443 | 3 | 4.4.2 | Applications that call lock(entity,
                LockModeType.PESSIMISTIC_FORCE_INCREMENT) on non-versioned
                objects
                will not be portable. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1444 | 3 | 4.4.2 | For versioned objects, it is permissible for an implementation
                to use
                LockModeType.PESSIMISTIC_FORCE_INCREMENT where
                LockModeType.PESSIMISTIC_READ or
                LockModeType.PESSIMISTIC_WRITE was requested, but not vice
                versa. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1445 | 3 | 4.4.2 | If a versioned object locked with LockModeType.PESSIMISTIC_READ
                or LockModeType.PESSIMISTIC_WRITE is
                updated, then the implementation must ensure that the
                requirements of
                LockModeType.PESSIMISTIC_FORCE_INCREMENT are met. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1446 | 3 | 4.4.3 | jakarta.persistence.lock.scope | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1446.1 | 3 | 4.4.3 | This property may be used with the methods of the
                        EntityManager interface that allow lock
                        modes
                        to be specified, the Query.setLockMode method and the
                        NamedQuery annotation. When specified,
                        this property must be observed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1446.2 | 3 | 4.4.3 | The provider is permitted to lock more (but not fewer)
                        rows than requested. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1447 | 3 | 4.4.3 | jakarta.persistence.lock.timeout | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1447.1 | 3 | 4.4.3 | This hint may be used with the methods of the
                        EntityManager interface that allow lock modes
                        to
                        be
                        specified, the Query.setLockMode method and the
                        NamedQuery annotation. It may also be
                        passed as a property to the
                        Persistence.createEntityManagerFactory method and used
                        in the properties element of the persistence.xml file. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1447.2 | 3 | 4.4.3 | When used in the createEntityManagerFactory method, the
                        persistence.
                        xml file, and the NamedQuery annotation, the timeout
                        hint serves as a default value which
                        can be selectively overridden by use in the methods of
                        the EntityManager,
                        Query, and TypedQuery
                        interfaces as
                        specified above. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1447.3 | 3 | 4.4.3 | A timeout value of 0 is used to specify “no wait”
                        locking | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1447.4 | 3 | 4.4.3 | Portable applications should not rely on this hint.
                        Depending on the database in use and the
                        locking
                        mechanisms used by the persistence provider, the hint
                        may or may not be observed. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1447.5 | 3 | 4.4.3 | Vendors are permitted to support the use of additional,
                        vendor-specific locking hints.
                        Vendor-specific
                        hints must not use the jakarta.persistence namespace.
                        Vendor-specific hints must be ignored if
                        they are not understood. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1447.6 | 3 | 4.4.3 | If the same property or hint is specified more than
                        once, the following order of overriding
                        applies, in
                        order of decreasing precedence:
                        • argument to method of EntityManager EntityManager, Query, or TypedQuery interface
                        • specification to NamedQuery (annotation or XML)
                        • argument to createEntityManagerFactory method
                        • specification in persistence.xml | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1448 | 3 | 4.5 | Provider implementations may defer writing to the database until
                the end of the transaction, when
                consistent
                with the lock mode and flush mode settings in effect. In this
                case, an optimistic lock check may
                not occur until commit time, and the OptimisticLockException may
                be thrown in the "before
                completion" phase of the commit. If the OptimisticLockException
                must be caught or handled
                by the application, the flush method should be used by the
                application to force the database writes to
                occur. This will allow the application to catch and handle
                optimistic lock exceptions. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1449 | 3 | 4.5 | The OptimisticLockException provides an API to return the object
                that caused the exception to
                be thrown. The object reference is not guaranteed to be present
                every time the exception is thrown but
                should be provided whenever the persistence provider can supply
                it. Applications cannot rely upon this
                object being available. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:692 | 3 | 4.5 | OptimisticLockException | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1450 | 3 | 4.5 | In some cases an OptimisticLockException will be thrown and
                wrapped by another exception,
                such as a RemoteException, when VM boundaries are crossed.
                Entities that may be referenced in
                wrapped exceptions should implement Serializable so that
                marshalling will not fail. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:693 | 3 | 4.5 | An OptimisticLockException always causes the
                transaction to be marked for roll back. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1316 | 3 | 5 | A lifecycle callback method can be defined on an entity
                class, a mapped superclass, or an
                entity
                listener class associated with an entity or mapped superclass | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1451 | 3 | 5 | An entity listener class is a class whose methods are invoked in
                response to lifecycle events on an
                entity. Any number of entity listener classes can be defined for
                an entity class or mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1317 | 3 | 5 | Default entity listeners—entity listener classes whose
                callback methods apply to all entities
                in the persistenceunit—can be specified by means of the XML
                descriptor | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:694 | 3 | 5 | Lifecycle callback methods and entity listener classes
                are defined by means of metadata
                annotations or in the XML descriptor. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:695 | 3 | 5 | When annotations are used, one or more entity listener
                classes are denoted using the
                EntityListeners annoation on the entity class or mapped
                superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:696 | 3 | 5 | If multiple entity listeners are defined, the order in
                wihch they are invoked is determined by
                the order in which they are specified in the EntityListeners
                annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:697 | 3 | 5 | The XML descriptor may be used as an alternative to
                specify the invocation order of the entity
                listeners or to override the order specified in metadata
                annotations.. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:698 | 3 | 5 | Any subset or combination of annotations may be
                specified on an entity class, mapped
                superclass, of listener class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:699 | 3 | 5 | A single class may not have more than one lifecycle
                callback method for the same lifecycle
                event. The same method may be used for multiple callback events. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:700 | 3 | 5 | Multple entity classes and mapped superclasses in an
                inheritance hierarchy may define listener
                classes and/or lifecycle callback methods directly on the class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:701 | 3 | 5.1 | The entity listener class must have a public no-arg
                constructor. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1318 | 3 | 5.1 | Entity listener classes in Java EE environments support
                dependency injection through the
                Contexts and
                Dependency Injection API (CDI) when the CDI is enabled. An entity listener
                class that makes use of CDI injection may also define lifecycle
                callback methods annotated with the
                PostConstruct and PreDestroy annotations. These methods will be
                invoked after injection has
                taken place and before the entity listener instance is destroyed
                respectively. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1452 | 3 | 5.1 | The persistence provider is responsible for using the
                CDI SPI to create instances of the entity
                listener
                class; to perform injection upon such instances; to invoke their
                PostConstruct and PreDestroy
                methods, if any; and to dispose of the entity listener
                instances. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1453 | 3 | 5.1 | The persistence provider is only required to support
                CDI injection into entity listeners in
                Java EE container
                environments. If the CDI is not enabled,
                the persistence provider must not invoke entity
                listeners that depend upon CDI injection.
                If the containing archive CDI is not a bean archive, | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1454 | 3 | 5.1 | An entity listener is a noncontextual object. In
                supporting injection into entity listeners,
                the persistence
                provider must behave as if it carries out the following steps
                involving the use of the CDI SPI. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1454.1 | 3 | 5.1 | Obtain a BeanManager instance. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1454.2 | 3 | 5.1 | Create an AnnotatedType instance for the entity
                        listener class. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1454.3 | 3 | 5.1 | Create an InjectionTarget instance for the
                        annotated type. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1454.4 | 3 | 5.1 | Create a Creational Context. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1454.5 | 3 | 5.1 | Instantiate the listener by calling the
                        InjectionTarget produce method. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1454.6 | 3 | 5.1 | Inject the listener instance by calling the
                        InjectionTarget inject method on the
                        instance. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1454.7 | 3 | 5.1 | Invoke the PostConstruct callback, if any, by
                        calling the InjectionTarget
                        postConstruct
                        method on the instance. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1455 | 3 | 5.1 | When the listener instance is to be destroyed, the
                persistence provider must behave as if it
                carries out the following steps. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1455.1 | 3 | 5.1 | Call the InjectionTarget preDestroy method on
                        the instance. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1455.2 | 3 | 5.1 | Call the InjectionTarget dispose method on the
                        instance. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1455.3 | 3 | 5.1 | Call the CreationalContext release method.. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1456 | 3 | 5.1 | Persistence providers may optimize the steps above,
                e.g. by avoiding calls to the actual CDI
                SPI and
                relying on container-specific interfaces instead, as long as the
                outcome is the same. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1457 | 3 | 5.1 | Entity listeners that do not make use of CDI injection
                are stateless. The lifecycle of such
                entity listeners
                is unspecified. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:707 | 3 | 5.1 | When invoked from within a JavaEE environment, the
                callback listener for an entity
                share the enterprise naming context of the invoking component,
                and the entity callback methods
                are invoked in the transaction and security contexts of the
                calling component at the time at
                which the callback method is invoked. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1277 | 3 | 5.2 | Entity lifecycle callback methods can be defined on an
                entity listener class and/or directly on
                an entity class or mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1278 | 3 | 5.2 | Lifecycle callback methods are annotated with
                annotations designating the callback events for
                which they are invoked or are mapped to the callback event using
                the XML descriptor. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1279 | 3 | 5.2 | The annotations (and XML elements) used for callback
                methods on the entity class or mapped
                superclass and for callback methods on the entity listener class
                are the same. The signatures of
                individual
                methods, however, differ. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1280 | 3 | 5.2 | Callback methods defined on an entity class or mapped
                superclass have the following signature:
                void <METHOD>() | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1281 | 3 | 5.2 | Callback methods defined on an entity listener class
                have the following signature: void <METHOD>(Object)
                The Object argument is the entity instance for which the
                callback method is invoked. It may be declared
                as the actual entity type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1282 | 3 | 5.2 | The callback methods can have public, private,
                protected, or package level access, but must not
                be static or final. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:702 | 3 | 5.2 | The following rules apply to lifecycle event callback
                methods: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:703 | 3 | 5.2 | Lifecycle callback methods may throw
                        unchecked/runtime exceptions. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:704 | 3 | 5.2 | A runtime exception thrown by a callback method
                        that executes within a transaction
                        causes that transaction to be marked for rollback if the
                        persistence context is joined to
                        the
                        transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:705 | 3 | 5.2 | Lifecycle callbacks can invoke JNDI, JDBC, JMS,
                        and enterprise beans. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:706 | 3 | 5.2 | In general, the lifecycle method of a portable
                        application should not invoke
                        EntityManager or query operations, access other entity
                        instances, or modify relationships
                        within
                        the same persistence context. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:702.1 | 3 | 5.2 | A lifecycle callback method may modify the
                        non-relationship state of the entity on which it
                        is
                        invoked. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:708 | 3 | 5.3 | The PrePersist and PreRemove callback methods are
                invoked for a given entity before the
                respective EntityManager persist and remove operation for that
                entity are executed | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:710 | 3 | 5.3 | For entities to which the merge operation has been
                applied and causes the creation of newly
                managed instances, the PrePersist callback methods will be
                invoked for the managed instance after the
                entity state has been copied to it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:709 | 3 | 5.3 | These PrePersist and PreRemove callbacks will also be
                invoked on all entities
                to which these operations are cascaded | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:711 | 3 | 5.3 | The PrePersist and PreRemove callbacks will always be
                invoked as part of the synchronous
                persist, merge, and remove operations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:712 | 3 | 5.3 | The PostPersist and PostRemove callback methods are
                invoked after the entity has been made
                persistent or removed. These callbacks will also be invoked on
                entities to which these operations are
                cascaded. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:713 | 3 | 5.3 | The PostPersist and PostRemove methods will be invoked
                after the database insert and delete
                operations respectively. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:714 | 3 | 5.3 | These database operations may occur directly after the
                persist, merge, or remove operations
                have been invoked or they may occur directly
                after a flush operation has occurred (which may be at the end of
                the transaction). | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:715 | 3 | 5.3 | Generated primary key values are available in the
                PostPersist method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:716 | 3 | 5.3 | The PreUpdate and PostUpdate callbacks occur before and
                after the database update operations to
                entity data respectively. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:717 | 3 | 5.3 | These database operations may occur at the time the
                entity state is updated or they may occur
                at the time state is flushed to the database (which may be at
                the end of the transaction). | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:718 | 3 | 5.3 | Note that it is implementation-dependent as to whether
                PreUpdate and PostUpdate callbacks occur
                when an entity is persisted and subsequently modified in a
                single transaction or when an entity is
                modified and subsequently removed within a single transaction.
                Portable applications should not rely on
                such behavior. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:719 | 3 | 5.3 | The PostLoad method for an entity is invoked after the
                entity has been loaded into the current
                persistence context from the database | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:720 | 3 | 5.3 | The PostLoad method is invoked before a query result is
                returned or accessed or before an
                association is traversed. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:721 | 3 | 5.3 | It is implementation-dependent as to whether callback
                methods are invoked before or after the
                cascading of the lifecycle events to related entities.
                Applications should not depend on this ordering. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1458 | 3 | 5.5 | If multiple callback methods are defined for an entity
                lifecycle event, the ordering of the
                invocation of these methods is as follows. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:722 | 3 | 5.5 | Default listeners, if any, are invoked first,
                        in the order specified in the XML
                        descriptor. Default listeners apply to all entities in
                        the persistence unit, unless
                        explicitly
                        excluded by means of the ExcludeDefaultListeners
                        annotation or exclude-default-listeners XML
                        element. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:723 | 3 | 5.5 | The lifecycle callback methods defined on the
                        entity listener classes for an entity
                        class or mapped superclass are invoked in the same order
                        as the specification of the entity
                        listener classes in the EntityListeners annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:724 | 3 | 5.5 | If multiple classes in an inheritance hierarchy
                        - entity classes and/or mapped
                        superclasses - define entity listeners the listeners
                        defined for a superclass are invoked
                        before
                        the listeners and defined for its subclasses in this
                        order. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:725 | 3 | 5.5 | The ExcludeSuperclassListeners annotation or
                        exclude-superclass-listeners XML
                        element
                        may be
                        applied to an
                        entity class or mapped super class to exclude the
                        invocation of the listeners defined by the
                        entity
                        listener classes for the
                        superclasses of the entity or mapped supeclass. The
                        excluded listeners are excluded from the
                        class to
                        which the
                        ExcludeSuperclassListeners annotation is specified and
                        its subclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:726 | 3 | 5.5 | Excluded listeners may reintroduced on an
                        entity class by listing them explicitly
                        in
                        the
                        EntityListeners annotation or XML entity-listeners
                        element. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:727 | 3 | 5.5 | The ExcludeSuperclassListeners annotation or
                        exclude-superclass-listeners XML
                        element)
                        does not
                        cause the default entity listeners to be excluded from
                        invocation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1458.1 | 3 | 5.5 | If a lifecycle callback method for the same
                        lifecycle event is also specified on
                        the
                        entity class and/or one
                        or more of its entity or mapped superclasses, the
                        callback methods on the entity class
                        and/or
                        superclasses
                        are invoked after the other lifecycle callback methods,
                        most general superclass first. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1458.2 | 3 | 5.5 | A class is
                        permitted to override an inherited callback method of
                        the same callback type, and in this
                        case,
                        the overridden
                        method is not invoked. If a method overrides an
                        inherited callback method but specifies a
                        different lifecycle event or is not a lifecycle callback
                        method,
                        the overridden method will not be invoked | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1459 | 3 | 5.5 | Callback methods are invoked by the persistence provider runtime
                in the order specified. If the callback
                method execution terminates normally, the persistence provider
                runtime then invokes the next callback
                method, if any. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1460 | 3 | 5.5 | The XML descriptor may be used to override the lifecycle
                callback method invocation order specified in
                annotations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1461 | 3 | 5.7 | Lifecycle callback methods may throw runtime
                exceptions. A runtime exception thrown by a
                callback
                method that executes within a transaction causes that
                transaction to be marked for rollback if the
                persistence
                context is joined to the transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1462 | 3 | 5.7 | No further lifecycle callback methods will be invoked
                after a runtime exception is thrown. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1463 | 3 | 5.8 | The XML descriptor can be used as an alternative to
                metadata annotations to specify entity
                listener
                classes and their binding to entities or to override the
                invocation order of lifecycle callback methods
                as
                specified in annotations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1464 | 3 | 5.8.1 | The entity-listener XML descriptor element is used to
                specify the lifecycle listener methods of
                an entity listener class. The lifecycle listener methods are
                specified by using the pre-persist,
                post-persist, pre-remove, post-remove, pre-update, post-update,
                and/or
                post-load elements. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1465 | 3 | 5.8.1 | An entity listener class can define multiple callback
                methods. However, at most one method of
                an entity
                listener class can be designated as a pre-persist method,
                post-persist method, pre-remove method,
                post-remove method, pre-update method, post-update method,
                and/or post-load method, regardless of
                whether the XML descriptor is used to define entity listeners or
                whether some combination of annotations
                and XML descriptor elements is used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1466 | 3 | 5.8.2 | The entity-listeners subelement of the
                persistence-unit-defaults element is used to
                specify the default entity listeners for the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1467 | 3 | 5.8.2 | The entity-listeners subelement of the entity or
                mapped-superclass element is used to
                specify the entity listener classes for the respective entity or
                mapped superclass and its subclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1468 | 3 | 5.8.2 | The binding of entity listeners to entity classes is
                additive. The entity listener classes
                bound to the
                superclasses of an entity or mapped superclass are applied to it
                as well. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1469 | 3 | 5.8.2 | The exclude-superclass-listeners element specifies that
                the listener methods for superclasses
                are not to be invoked for an entity class (or mapped superclass)
                and its subclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1470 | 3 | 5.8.2 | The exclude-default-listeners element specifies that
                default entity listeners are not to be
                invoked for an entity class (or mapped superclass) and its
                subclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1471 | 3 | 5.8.2 | Explicitly listing an excluded default or superclass
                listener for a given entity class or
                mapped superclass
                causes it to be applied to that entity or mapped superclass and
                its subclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1472 | 3 | 5.8.2 | In the case of multiple callback methods for a single
                lifecycle event, the invocation order
                rules
                described in section 3.5.5 apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1283 | 3 | 6 | Managed classes (entities, mapped superclasses, and
                embeddable classes) may be configured to
                include Bean Validation constraints. Automatic validation using
                these constraints is achieved by
                specifying that Java Persistence delegate validation to the Bean
                Validation implementation upon the
                pre-persist, pre-update, and pre-remove
                entity lifecycle events | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1284 | 3 | 6 | Validation can also be achieved by the application
                calling the validate method of a Validator
                instance upon an instance of a managed class, as described in
                the Bean Validation specification | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1285 | 3 | 6.1 | This specification supports the use of bean validation
                for the automatic validation of entities
                upon the
                pre-persist, pre-update, and pre-remove lifecycle validation
                events. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1285.1 | 3 | 6.1 | These lifecycle validation events
                        occur immediately after the point at which all the
                        PrePersist, PreUpdate, and PreRemove
                        lifecycle
                        callback method invocations respectively have been
                        completed | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1285.2 | 3 | 6.1 | or immediately after the point at
                        which such lifecycle callback methods would have been
                        completed (in the event that such
                        callback
                        methods are not present). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1473 | 3 | 6.1 | In the case where an entity is persisted and
                subsequently modified in a single transaction or
                when an entity is modified and subsequently removed in a single
                transaction, it is implementation
                dependent as to whether the pre-update validation event occurs. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1286 | 3 | 6.1.1 | The validation-mode element of the persistence.xml file
                determines whether the automatic
                lifecycle event validation is in effect. The values of the
                validation-mode element are AUTO,
                CALLBACK, NONE. The default validation mode is AUTO. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1287 | 3 | 6.1.1 | If the application creates the entity manager factory
                using the
                Persistence.createEntityManagerFactory
                method, the validation mode can be specified using the
                jakarta.persistence.
                validation.mode map key, which will override the value specified
                (or defaulted) in the
                persistence.xml file. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1474 | 3 | 6.1.1 | The map values for this key are "auto", "callback",
                "none". | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1288 | 3 | 6.1.1 | If the auto validation mode is specified by the
                validation-mode element or the
                jakarta.persistence.
                validation.mode property, or if neither the validation-mode
                element nor the
                jakarta.persistence.validation.mode property is specified, and a
                Bean Validation provider
                is present in the environment, the persistence provider must
                perform the automatic validation of
                entities
                as described in section 3.6.1.2. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1289 | 3 | 6.1.1 | If no Bean Validation provider is present in the
                environment, no lifecycle
                event validation takes place. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1290 | 3 | 6.1.1 | If the callback validation mode is specified by the
                validation-mode element or the
                jakarta.persistence.
                validation.mode property, the persistence provider must perform
                the lifecycle event
                validation as described in section 3.6.1.2. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1291 | 3 | 6.1.1 | It is an error if there is no Bean Validation provider
                present in
                the environment, and the provider must throw the
                PersistenceException if the jakarta.persistence.
                validation.mode property value "callback" has been passed to the
                Persistence.
                createEntityManagerFactory method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1292 | 3 | 6.1.1 | If the none validation mode is specified by the
                validation-mode element or the
                jakarta.persistence.
                validation.mode property, the persistence provider must not
                perform lifecycle event
                validation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1293 | 3 | 6.1.2 | the default Bean Validation group (the group Default)
                will be validated upon | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1293.1 | 3 | 6.1.2 | pre-persist lifecycle validation event | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1293.2 | 3 | 6.1.2 | pre-update lifecycle validation event | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1293.3 | 3 | 6.1.2 | no group will be validated upon the pre-remove
                        event | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1294 | 3 | 6.1.2 | This default validation behavior can be overridden by
                specifying the target groups using the
                following
                validation properties in the persistence.xml file or by passing
                these properties in the configuration
                of the entity manager factory through the
                createEntityManagerFactory method: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1294.1 | 3 | 6.1.2 | jakarta.persistence.validation.group.pre-persist | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1294.2 | 3 | 6.1.2 | jakarta.persistence.validation.group.pre-update | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1294.3 | 3 | 6.1.2 | jakarta.persistence.validation.group.pre-remove | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1295 | 3 | 6.1.2 | The value of a validation property must be a list of
                the targeted groups. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1475 | 3 | 6.1.2 | A targeted group must be specified by its fully
                qualified class name. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1476 | 3 | 6.1.2 | Names must be separated by a comma. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1296 | 3 | 6.1.2 | When one of the above events occurs for an entity, the
                persistence provider must validate that
                entity by
                obtaining a Validator instance from the validator factory in use
                (see section 3.6.2) and invoking its
                validate method with the targeted groups. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1477 | 3 | 6.1.2 | If the list of targeted groups is empty, no validation
                is performed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1297 | 3 | 6.1.2 | If the set of ConstraintViolation objects returned by
                the validate method is not
                empty, the persistence provider must throw the
                jakarta.validation.ConstraintViolation-
                Exception containing a reference to the returned set of
                ConstraintViolation objects, and
                must mark the transaction for rollback if the persistence
                context is joined to the transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1298 | 3 | 6.1.2 | The validator instance that is used for automatic
                validation upon lifecycle events must use a
                TraversableResolver that has the following behavior: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1298.1 | 3 | 6.1.2 | Attributes that have not been loaded must not
                        be loaded. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1298.2 | 3 | 6.1.2 | Validation cascade (@Valid) must not occur for
                        entity associations (single- or
                        multi-valued). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1299 | 3 | 6.1.2 | Embeddable attributes must be validated only if the
                Valid annotation has been specified on
                them. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1300 | 3 | 6.1.2 | It is the responsibility of the persistence provider to
                pass an instance implementing the
                jakarta.validation. TraversableResolver interface to the Bean
                Validation provider by calling
                ValidatorFactory.
                usingContext().traversableResolver(tr).getValidator(), where
                tr is the resolver having the behavior described above. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1300 | 3 | 6.2 | In Java EE environments, a ValidatorFactory instance is
                made available by the Java EE
                container.
                The container is responsible for passing this validator factory
                to the persistence provider via the
                map that is passed as an argument to the
                createContainerEntityManagerFactory call. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1478 | 3 | 6.2 | The map key used by the container must be the standard
                property name
                jakarta.persistence.validation.
                factory. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1301 | 3 | 6.2 | In Java SE environments, the application can pass the
                ValidatorFactory instance via the map
                that
                is passed as an argument to the
                Persistence.createEntityManagerFactory call. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1479 | 3 | 6.2 | The map key used must be the standard property name
                jakarta.persistence.validation.factory | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1480 | 3 | 6.2 | If no ValidatorFactory instance is provided by the
                application, and if a Bean Validation
                provider is
                present in the classpath, the persistence provider must
                instantiate the ValidatorFactory using the
                default bootstrapping approach defined by the Bean Validation
                specification [8], namely
                Validation.buildDefaultValidatorFactory(). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2425 | 3 | 7 | Entity graphs are used in the specification of “fetch
                plans” for query operations | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2426 | 3 | 7 | Entity graphs are used in the specification of “fetch
                plans” for find operations | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2427 | 3 | 7 | Entity graphs are used in the specification of “fetch
                plans” as specifications
                for the boundaries of merge operations | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2429 | 3 | 7 | The named-entity-graph XML element and its subelements
                may be used to override these
                annotations
                or to define additional named entity graphs. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2430 | 3 | 7.4 | An entity graph can be used with the find method | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2431 | 3 | 7.4 | An entity graph can be used as a query hint to override
                or augment FetchType semantics | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2432 | 3 | 7.4 | The standard properties jakarta.persistence.fetchgraph
                and jakarta.persistence.
                loadgraph are used to specify such graphs to queries and find
                operations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2433 | 3 | 7.4 | The default fetch graph for an entity or embeddable is
                defined to consist of the transitive
                closure of all
                of its attributes that are specified as FetchType.EAGER (or
                defaulted as such) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2434 | 3 | 7.4 | The persistence provider is permitted to fetch
                additional entity state beyond that specified by
                a fetch
                graph or load graph. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2435 | 3 | 7.4 | It is required, however, that the persistence provider
                fetch all state specified by the
                fetch or load graph. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2436 | 3 | 7.4.1 | When the jakarta.persistence.fetchgraph property is used
                to specify an entity graph,
                attributes that are specified by attribute nodes of the entity
                graph are treated as FetchType.EAGER
                and attributes that are not specified are treated as
                FetchType.LAZY. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2437 | 3 | 7.4.1 | A primary key or version attribute never needs to be
                specified in an attribute node of a fetch
                graph.
                (This applies to composite primary keys as well, including
                embedded id primary keys.) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2438 | 3 | 7.4.1 | When an entity
                is fetched, its primary key and version attributes are always
                fetched. It is not incorrect, however, to
                specify primary key attributes or version attributes | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2439 | 3 | 7.4.1 | Attributes other than primary key and version
                attributes are assumed not to be fetched unless
                the
                attribute is specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2440 | 3 | 7.4.1 | The following rules apply to the specification of
                attributes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2440.1 | 3 | 7.4.1 | If the attribute is an embedded attribute, and
                        the attribute is specified in an
                        attribute node, but a
                        subgraph is not specified for the attribute, the default
                        fetch graph for the embeddable is
                        fetched. If a subgraph is specified for the attribute,
                        the attributes of the embeddable are
                        fetched
                        according to their specification in the corresponding
                        subgraph. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2440.2 | 3 | 7.4.1 | If the attribute is an element collection of
                        basic type, and the attribute is specified
                        in an
                        attribute node, the element collection together with its
                        basic elements is fetched. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2440.3 | 3 | 7.4.1 | If the attribute is an element collection of
                        embeddables, and the attribute is
                        specified in an
                        attribute node, but a subgraph is not specified for the
                        attribute, the element collection
                        together
                        with the default fetch graph of its embeddable elements
                        is fetched. If a subgraph is specified
                        for the attribute, the attributes of the embeddable
                        elements are fetched according to the
                        corresponding
                        subgraph specification. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2440.4 | 3 | 7.4.1 | If the attribute is a one-to-one or many-to-one
                        relationship, and the attribute is
                        specified in an
                        attribute node, but a subgraph is not specified for the
                        attribute, the default fetch graph of
                        the
                        target entity is fetched. If a subgraph is specified for
                        the attribute, the attributes of the
                        target
                        entity are fetched according to the corresponding
                        subgraph specification. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2440.5 | 3 | 7.4.1 | If the attribute is a one-to-many or
                        many-to-many relationship, and the attribute is
                        specified in
                        an attribute node, but a subgraph is not specified, the
                        collection is fetched and the default
                        fetch
                        graphs of the referenced entities are fetched. If a
                        subgraph is specified for the attribute, the
                        entities in the collection are fetched according to the
                        corresponding subgraph specification. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2440.6 | 3 | 7.4.1 | If the key of a map which has been specified in
                        an attribute node is a basic type, it
                        is fetched. If
                        the key of a map which has been specified in an
                        attribute node is an embedded type, the default
                        fetch graph is fetched for the embeddable. Otherwise, if
                        the key of the map is an entity, and a
                        map key subgraph is not specified for the attribute
                        node, the map key is fetched according to
                        its
                        default fetch graph. If a key subgraph is specified for
                        the map key attribute, the map key
                        attribute is fetched according to the map key subgraph
                        specification. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2441 | 3 | 7.4.2 | When the jakarta.persistence.loadgraph property is used
                to specify an entity graph, attributes
                that are specified by attribute nodes of the entity graph are
                treated as FetchType.EAGER and
                attributes that are not specified are treated according to their
                specified or default FetchType. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2442 | 3 | 7.4.2 | The following rules apply. The rules of this section
                are applied recursively. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2442.1 | 3 | 7.4.2 | A primary key or version attribute never needs
                        to be specified in an attribute node of
                        a load
                        graph. (This applies to composite primary keys as well,
                        including embedded id primary keys.)
                        When an entity is fetched, its primary key and version
                        attributes are always fetched. It is not
                        incorrect, however, to specify primary key attributes or
                        version attributes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2442.2 | 3 | 7.4.2 | If the attribute is an embedded attribute, and
                        the attribute is specified in an
                        attribute node, but a
                        subgraph is not specified for the attribute, the default
                        fetch graph for the embeddable is
                        fetched. If a subgraph is specified for the attribute,
                        attributes that are specified by the
                        subgraph
                        are also fetched. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2442.3 | 3 | 7.4.2 | If the attribute is an element collection of
                        basic type, and the attribute is specified
                        in an
                        attribute node, the element collection together with its
                        basic elements is fetched. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2442.4 | 3 | 7.4.2 | If the attribute is an element collection of
                        embeddables, and the attribute is
                        specified in an
                        attribute node, the element collection together with the
                        default fetch graph of its embeddable
                        elements is fetched. If a subgraph is specified for the
                        attribute, attributes that are specified
                        by
                        the subgraph are also fetched. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2442.5 | 3 | 7.4.2 | If the attribute is a one-to-one or many-to-one
                        relationship, and the attribute is
                        specified in an
                        attribute node, the default fetch graph of the target
                        entity is fetched. If a subgraph is
                        specified
                        for the attribute, attributes that are specified by the
                        subgraph are also fetched. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2442.6 | 3 | 7.4.2 | If the attribute is a one-to-many or
                        many-to-many relationship, and the attribute is
                        specified in
                        an attribute node, the collection is fetched and the
                        default fetch graphs of the referenced
                        entities
                        are fetched. If a subgraph is specified for the
                        attribute, attributes that are specified by the
                        subgraph are also fetched | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2442.7 | 3 | 7.4.2 | If the key of a map which has been specified in
                        an attribute node is a basic type, it
                        is fetched. If
                        the key of a map which has been specified in an
                        attribute node is an embedded type, the default
                        fetch graph is fetched for the embeddable. Otherwise, if
                        the key of the map is an entity, the
                        map key is fetched according to its default fetch graph.
                        If a key subgraph is specified for the
                        map key attribute, additional attributes are fetched as
                        specified in the key subgraph. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2443 | 3 | 7.5 | An entity graph may be used as a “merge graph” and
                passed as an argument to the merge method. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2444 | 3 | 7.5 | A merge graph attribute node specified within an entity
                graph or subgraph specifies how an attribute is
                to be merged. Primary key and version attributes do not need to
                be specified in the merge graph. If
                other attributes are not specified, they are not merged. Note
                that cascade=MERGE specifications are
                ignored. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2445 | 3 | 7.5 | The persistence provider must observe the scope and
                boundaries of a merge graph specification exactly. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2446 | 3 | 7.5 | The following additional rules apply for attributes
                that are specified in attribute nodes. These rules are
                applied recursively. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2446.1 | 3 | 7.5 | If the attribute is an embedded attribute and a
                        subgraph is not specified for the attribute, the
                        embedded attribute is merged but the attributes of the
                        embeddable are not merged. If a subgraph
                        is specified for the attribute, the attributes of the
                        embeddable are merged according to
                        their specification in the corresponding subgraph. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2446.2 | 3 | 7.5 | If the attribute is an element collection of
                        basic type, the element collection is merged. The
                        values in the element collection are replaced. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2446.3 | 3 | 7.5 | If the attribute is an element collection of
                        embeddables and a subgraph is not specified for the
                        attribute, the element collection is merged. The values
                        in the element collection are replaced
                        and all attributes of the embeddables are included. If a
                        subgraph is specified for the attribute,
                        the values in the element collection are replaced and
                        all attributes of the embeddables are
                        included, and the attributes specified in the subgraph
                        are processed according to the subgraph
                        specification. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2446.4 | 3 | 7.5 | If the attribute is a one-to-one or many-to-one
                        relationship and a subgraph is not specified for
                        the attribute, the attribute is merged, but the
                        attributes of the target entity are not merged. If a
                        subgraph is specified for the attribute, the attributes
                        of the target entity are merged according to
                        the corresponding subgraph specification. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2446.5 | 3 | 7.5 | If the attribute is a one-to-many or
                        many-to-many relationship and a subgraph is not
                        specified
                        for the attribute, the attribute is merged, but the
                        attributes of the target entity are not merged. If
                        a subgraph is specified for the attribute, the entities
                        in the collection are merged according to
                        the corresponding subgraph specification. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2446.6 | 3 | 7.5 | In both of the two relationship cases above,
                        note that if a new entity (entity in the “new” state)
                        was added to the relationship and only a subset of its
                        attributes is specified in the subgraph,
                        only those specified attributes are copied. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2446.7 | 3 | 7.5 | If the attribute is a map, the map key is
                        merged. If the map key is an embeddable, all attributes
                        of the embeddable are included. If the map key is an
                        entity, the attribute is merged, but the
                        attributes of the target entity are not merged. If a
                        subgraph is specified for the attribute, the target
                        entity is merged according to the corresponding subgraph
                        specification. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2447 | 3 | 7.6 | An entity graph may be used as a “copy graph” and
                passed as an argument to the copy method. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2448 | 3 | 7.6 | When
                using an entity graph in combination with the copy method, a
                copy of the entity is created and the
                attributes of the copied entity are populated based on copies of
                the attributes listed in the entity graph. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2449 | 3 | 7.6 | The persistence provider must observe the scope and
                boundaries of a copy graph specification exactly. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2450 | 3 | 7.6 | The following rules apply to the specification of
                attributes. The rules of this section are applied recursively. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2450.1 | 3 | 7.6 | Primary key and version attributes are always
                        copied. Attributes are otherwise not copied
                        unless they are specified. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2450.2 | 3 | 7.6 | If the attribute is an embedded attribute and
                        an attribute node is specified for the attribute, but a
                        subgraph is not specified, a new instance of the
                        embeddable is inserted into the resulting copy
                        of the entity graph, but no state is copied. If a
                        subgraph is specified for the attribute, the
                        attributes of the embeddable are copied according to
                        their specification in the corresponding
                        subgraph. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2450.3 | 3 | 7.6 | If the attribute is an element collection of
                        basic type, the element collection and its contents are
                        copied. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2450.4 | 3 | 7.6 | If the attribute is an element collection of
                        embeddables and an attribute node is specified for
                        the attribute, but a subgraph is not specified, a new
                        collection is created and new embeddable
                        instances are inserted into it, but no state is copied.
                        If a subgraph is specified for the attribute,
                        the embeddables are copied according to their
                        specification in the subgraph. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2450.5 | 3 | 7.6 | If the attribute is a one-to-one or many-to-one
                        relationship and an attribute node is specified for
                        the attribute, but a subgraph is not specified, a copy
                        of the entity is created and inserted. Only
                        the primary key and version attributes of the entity are
                        copied. If a subgraph is specified for
                        the attribute, a copy of the entity is created and
                        inserted and the attributes of the target entity
                        are copied according to the corresponding subgraph
                        specification along with the primary key
                        and version attributes. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2450.6 | 3 | 7.6 | If the attribute is a one-to-many or
                        many-to-many relationship and an attribute node is
                        specified
                        for the attribute, but a subgraph is not specified, a
                        new collection is created and inserted,
                        and copies of the referenced entities are created and
                        inserted into the collection. Only the primary
                        key and version attributes of these entities are copied.
                        If a subgraph is specified for the
                        attribute, the entities in the collection are copied
                        according to the corresponding subgraph
                        specification along with the primary key and version
                        attributes. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2450.7 | 3 | 7.6 | If the attribute is a map and an attribute node
                        has been specified for the attribute:
                        • If the map key is a basic type, it is copied.
                        • If the map key is an embedded attribute, a new
                        instance of the embeddable is inserted
                        but no state is copied.
                        • If the map key is an entity, a copy of the entity is
                        created, and only the primary key
                        and version attributes of the entity are copied.
                        • If a map key subgraph is specified for the embeddable
                        or entity, the attributes of the
                        target are copied according to the corresponding map key
                        subgraph specification. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1481 | 3 | 8 | Converters can be used to convert basic attributes
                defined by entity classes, mapped
                superclasses, or embeddable classes | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1482 | 3 | 8 | An attribute converter must implement the
                jakarta.persistence.AttributeConverter interface. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1483 | 3 | 8 | A converter implementation class must be | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1483.1 | 3 | 8 | annotated with the Converter annotation | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1483.2 | 3 | 8 | defined in the XML descriptor as a converter. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1484 | 3 | 8 | If the value of the autoApply element of the Converter
                annotation is true, the converter will be applied
                to all attributes of the target type, including to basic
                attribute values that are contained within
                other, more complex attribute types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1485 | 3 | 8 | The conversion of all basic types is supported except
                for the following: | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1485.1 | 3 | 8 | Id attributes (including
                        the attributes of embedded ids and derived identities) | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1485.2 | 3 | 8 | version attributes | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1485.3 | 3 | 8 | relationship attributes | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1485.4 | 3 | 8 | attributes explicitly annotated as Enumerated | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1485.5 | 3 | 8 | attributes explicitly annotated as Temporal | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1485.6 | 3 | 8 | attributes explicitly designated as such in the XML
                        descriptor | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1486 | 3 | 8 | Auto-apply converters will not be applied to such
                attributes, and applications that apply
                converters to such attributes through use of the Convert
                annotation will not be portable. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1487 | 3 | 8 | Type conversion may be specified at the level of
                individual attributes by means of the Convert
                annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1488 | 3 | 8 | The Convert annotation may also be used to override or
                disable an auto-apply conversion. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1489 | 3 | 8 | The Convert annotation may be applied directly to an
                attribute of an ... to specify conversion
                of the attribute or to override the use of a converter that has
                been specified as autoApply=true. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1489.1 | 3 | 8 | entity | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1489.2 | 3 | 8 | mapped superclass | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1489.3 | 3 | 8 | embeddable class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1490 | 3 | 8 | When persistent properties are used, the Convert
                annotation is applied to the getter method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1491 | 3 | 8 | The Convert annotation may be applied to an entity that extends
                a mapped superclass to specify or
                override the conversion mapping for an inherited basic or
                embedded attribute. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1492 | 3 | 8 | The persistence provider runtime is responsible for invoking the
                specified conversion methods for the
                target attribute type when loading the entity attribute from the
                database and before storing the entity
                attribute state to the database. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1493 | 3 | 8 | The persistence provider must apply any conversion methods to
                instances of attribute values in path expressions used within
                Java Persistence query language queries or criteria queries
                (such as in comparisons, bulk updates, etc.)
                before sending them to the database for the query execution. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2486 | 3 | 8 | When such converted attributes are used in comparison
                operations with literals or parameters, the value of the literal
                or parameter to which they are compared must also be converted | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1494 | 3 | 8 | If the result of a Java Persistence query language query or
                criteria query includes one or more entity
                attributes for which conversion mappings have been specified,
                the persistence provider must apply the
                specified conversions to the corresponding values in the query
                result before returning them to the
                application. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2487 | 3 | 8 | The use of functions, including aggregates, on
                converted attributes is undefined. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1495 | 3 | 8 | If an exception is thrown from a conversion method, the
                persistence provider must wrap
                the exception in a PersistenceException and, if the persistence
                context is joined to a transaction, mark
                the transaction for rollback. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1496 | 3 | 9.1 | A value of ALL causes all entities and entity-related
                state and data to be cached. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1497 | 3 | 9.1 | A value of NONE causes caching to be disabled for the
                persistence unit. Persistence providers
                must not
                cache if NONE is specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1498 | 3 | 9.1 | The values ENABLE_SELECTIVE and DISABLE_SELECTIVE are
                used in conjunction with the
                Cacheable annotation (or XML element). The Cacheable annotation
                specifies whether an entity
                should be cached if such selective caching is enabled by the
                persistence.xml shared-cache-mode element.
                The Cacheable element is specified on the entity class. It
                applies to the given entity and its
                subclasses
                unless subsequently overridden by a subclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1498.1 | 3 | 9.1 | Cacheable(false) means that the entity and its
                        state must not be cached by the
                        provider. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1498.2 | 3 | 9.1 | A value of ENABLE_SELECTIVE enables the cache
                        and causes entities for which
                        Cacheable(
                        true) (or its XML equivalent) is specified to be cached.
                        Entities for which Cacheable(true)
                        is
                        not specified or for which Cacheable(false) is specified
                        must not be
                        cached. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1498.3 | 3 | 9.1 | A value of DISABLE_SELECTIVE enables the cache
                        and causes all entities to be cached
                        except those for which Cacheable(false) is specified.
                        Entities for which Cacheable(false) is
                        specified must not be cached. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1499 | 3 | 9.1 | If either the shared-cache-mode element is not
                specified in the persistence.xml file or the
                value of the shared-cache-mode element is UNSPECIFIED, and the
                jakarta.persistence.sharedCache.mode
                property is not specified, the behavior is not defined, and
                provider-specific defaults may apply. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1500 | 3 | 9.1 | If the shared-cache-mode element and the
                jakarta.persistence.sharedCache.mode property are not
                specified, the semantics of the Cacheable annotation (and XML
                equivalent) are undefined. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1501 | 3 | 9.2 | Cache retrieve mode and cache store mode properties may
                be specified at the level of the
                persistence
                context by means of the EntityManager setProperty method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1502 | 3 | 9.2 | These properties may be specified for
                the EntityManager find and refresh methods and the Query, TypedQuery, and StoredProcedureQuery setHint methods. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1503 | 3 | 9.2 | Cache retrieve mode and/or cache store mode properties
                specified for the find, refresh, and
                Query and TypedQuery, and StoredProcedureQuery setHint methods override those specified
                for the persistence context for the
                specified find and refresh invocations, and for the execution of
                the specified queries respectively. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1504 | 3 | 9.2 | If caching is disabled by the NONE value of the
                shared-cache-mode element, cache retrieve mode
                and cache store mode properties must be ignored. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1505 | 3 | 9.2 | if the ENABLE_SELECTIVE value is specified, but
                Cacheable(true) is not specified for a
                particular entity, they are ignored for that entity; if the
                DISABLE_SELECTIVE value is specified, they
                are ignored for any entities for which Cacheable(false) is
                specified. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1506 | 3 | 9.2 | Cache retrieve mode and cache store mode properties
                must be observed when caching is enabled,
                regardless of whether caching is enabled due to the
                specification of the shared-cache-mode element or
                enabled due to provider-specific options. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1507 | 3 | 10.7 | Java Persistence query language queries are executed
                using the getResultList method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1508 | 3 | 10.7 | Java Persistence query language queries are executed
                using the getSingleResult method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1509 | 3 | 10.7 | Criteria API queries are executed using the
                getResultList method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1510 | 3 | 10.7 | Criteria API queries are executed using the
                getSingleResult method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1511 | 3 | 10.7 | native SQL select queries are executed using the
                getResultList method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1512 | 3 | 10.7 | native SQL select queries are executed using the
                getSingleResult method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1513 | 3 | 10.7 | For TypedQuery instances, the query result type is
                determined in the case of criteria queries
                by the type of the query specified when the CriteriaQuery object
                is created, | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1514 | 3 | 10.7 | In the case of Java Persistence query language queries,
                the type of the result is determined by
                the | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1514.1 | 3 | 10.7 | resultClass argument to the createQuery method
                        and the select list of the query
                        must
                        contain only a
                        single item which must be assignable to the specified
                        type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1514.2 | 3 | 10.7 | resultClass argument to the createNamedQuery
                        method and the select list of the
                        query
                        must contain only a
                        single item which must be assignable to the specified
                        type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:728 | 3 | 10.7 | For Query instances | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:728.1 | 3 | 10.7 | the elements of a query result whose select
                        list consists of more than one select
                        expression are of type Object[]. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:728.2 | 3 | 10.7 | If the select list consists of only one select
                        expression, the elements of the
                        query
                        result are of type Object | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:728.3 | 3 | 10.7 | When native SQL queries are used, the SQL
                        result set mapping, determines how many
                        items
                        (entities, scalar values, etc.) are returned. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:728.4 | 3 | 10.7 | If multiple items are returned, the elements of
                        the query result are of type
                        Object[] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:728.5 | 3 | 10.7 | If only a single item is returned as a result
                        of the SQL result set mapping, the
                        elements of the query result are of type Object. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:728.6 | 3 | 10.7 | if a result class is specified, the elements of the
                        query result are of type Object. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1515 | 3 | 10.7 | Stored procedure queries can be executed using the
                getResultList, getSingleResult, and
                execute methods. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1516 | 3 | 10.7 | Stored procedures that perform only updates or deletes
                can be executed using the executeUpdate
                method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:729 | 3 | 10.7 | An IllegalArgumentException is thrown if: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:730 | 3 | 10.7 | a parameter name is specified that does not
                        correspond to a named parameter of the
                        query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:731 | 3 | 10.7 | a positional value is specified that does not
                        correspond to a positional parameter
                        of
                        the query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:732 | 3 | 10.7 | If the type of the parameter is not valid for
                        the query. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:733 | 3 | 10.7 | This exception may be thrown when the parameter
                        is bound, or the execution of the
                        query
                        may fail. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1517 | 3 | 10.7 | The use of setMaxResults and setFirstResult is not
                supported for stored procedure queries. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1518 | 3 | 10.7 | Query methods other than the executeUpdate method are
                not required to be
                invoked within a transaction context, unless a lock mode other
                than LockModeType.NONE has been
                specified for the query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1519 | 3 | 10.7 | TypedQuery methods other than the executeUpdate method
                are not required to be
                invoked within a transaction context, unless a lock mode other
                than LockModeType.NONE has been
                specified for the query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1520 | 3 | 10.7 | the getResultList method are not required to be invoked
                within a transaction context unless
                such a lock mode has been specified for the
                query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1521 | 3 | 10.7 | the getSingleResult method are not required to be
                invoked within a transaction context unless
                such a lock mode has been specified for the
                query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1522 | 3 | 10.7 | If an entity manager with transaction-scoped
                persistence context is in use, the resulting
                entities
                will be detached | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1523 | 3 | 10.7 | if an entity manager with an extended persistence
                context is used, they will be managed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1524 | 3 | 10.7 | Runtime exceptions other than the NoResultException,
                NonUniqueResultException,
                QueryTimeoutException, and LockTimeoutException thrown by the
                methods of the Query, TypedQuery, and
                StoredProcedureQuery interfaces other than those methods
                specified below cause the current transaction
                to be marked for rollback if the persistence context is joined
                to the transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1302 | 3 | 10.7 | Runtime exceptions thrown by the following methods of the Query,
                TypedQuery, and StoredProcedureQuery
                interfaces do not cause the current transaction to be marked for
                rollback: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1302.1 | 3 | 10.7 | getParameters | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1302.2 | 3 | 10.7 | getParameter | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1302.3 | 3 | 10.7 | getParameterValue | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1302.4 | 3 | 10.7 | getOutputParameterValue | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1302.5 | 3 | 10.7 | getLockMode | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1303 | 3 | 10.7 | Runtime exceptions thrown by the methods of the Tuple,
                TupleElement, and Parameter interfaces
                do not cause the current transaction to be marked for rollback. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1525 | 3 | 10.8 | If the persistence context has not been joined to the
                current transaction, the persistence
                provider must
                not flush to the database regardless of the flush mode setting. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1526 | 3 | 10.8 | If there is no transaction active, the persistence
                provider must not flush to the database. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1527 | 3 | 10.9 | The setLockMode method of the Query or TypedQuery
                interface or the lockMode element of
                the NamedQuery annotation may be used to lock the results of a
                query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1528 | 3 | 10.9 | A lock is obtained for each entity specified in the
                query result (including entities passed to
                constructors in the query SELECT clause). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1529 | 3 | 10.9 | Note that the setLockMode method may be called more
                than once (with different values) on a
                Query or
                TypedQuery object. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1530 | 3 | 10.9 | If the lock mode type is PESSIMISTIC_READ,
                PESSIMISTIC_WRITE, or
                PESSIMISTIC_FORCE_INCREMENT, and the query returns scalar data
                (e.g., the values of entity
                field or properties, including scalar data passed to
                constructors in the query SELECT clause), the
                underlying database rows will be locked[50], but the version
                columns (if any) for any entities
                corresponding to
                such scalar data will not be updated unless the entities
                themselves are also otherwise retrieved and
                updated. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1531 | 3 | 10.9 | If the lock mode type is PESSIMISTIC_READ,
                PESSIMISTIC_WRITE, or
                PESSIMISTIC_FORCE_INCREMENT, and the query returns scalar data
                (e.g., the values of entity
                field or properties, including scalar data passed to
                constructors in the query SELECT clause), the
                underlying database rows will be locked[50], but the version
                columns (if any) for any entities
                corresponding to
                such scalar data will not be updated unless the entities
                themselves are also otherwise retrieved and
                updated. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1532 | 3 | 10.9 | Note that locking will not occur for data passed to
                aggregate functions. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1533 | 3 | 10.9 | queries involving aggregates with pessimistic locking
                may not be supported on all database
                platforms. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1534 | 3 | 10.9 | If the lock mode type is OPTIMISTIC or
                OPTIMISTIC_FORCE_INCREMENT, and the query returns
                scalar data, any entities returned by the query will be locked,
                but no locking will occur for scalar
                data that does not correspond to the state of any entity
                instance in the query result. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1535 | 3 | 10.9 | If a lock mode other than NONE is specified for a
                query, the query must be executed within a
                transaction (and the persistence context must be joined to the
                transaction) or the
                TransactionRequiredException
                will be thrown. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1536 | 3 | 10.9 | Locking is supported for Java Persistence query
                language queries and criteria queries only. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1537 | 3 | 10.9 | If the setLockMode or getLockMode method is invoked on
                a query that is not a Java Persistence
                query language select query or a criteria query, the
                IllegalStateException may be thrown or the query
                execution will fail. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1538 | 3 | 10.10 | This entire section is optional | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:734 | 3 | 10.11 | Parameter objects can be used for criteria queries and
                for Java Persistence query language
                queries. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1539 | 3 | 10.11 | Implementations may support the use of Parameter
                objects for native queries, however support
                for
                Parameter objects with native queries is not required by this
                specification. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1305 | 3 | 10.12 | Named parameters can be used for Java Persistence query
                language queries, for criteria queries
                (although use of Parameter objects is to be preferred), and for
                stored procedure queries that support
                named parameters. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1306 | 3 | 10.12 | Named parameters are case-sensitive. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1540 | 3 | 10.12 | A named parameter of a Java Persistence query language
                query is an identifier that is prefixed
                by the ":" symbol. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1307 | 3 | 10.12 | The parameter names passed to the setParameter methods
                of the Query and TypedQuery interfaces
                do not include this ":" prefix | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1308 | 3 | 10.13 | Only positional parameter binding and positional access
                to result items may be portably used
                for native
                queries, except for stored procedure queries for which named
                parameters have been defined. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1309 | 3 | 10.13 | When binding the values of positional parameters, the
                numbering starts as “1”. It is assumed
                that for native
                queries the parameters themselves use the SQL syntax (i.e., “?”,
                rather than “?1”). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1311 | 3 | 10.14 | Named queries are static queries expressed in metadata
                or queries registered by means of the
                EntityManagerFactory addNamedQuery method. Named queries can be
                defined in the Java Persistence query
                language
                or in SQL. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1312 | 3 | 10.14 | Query names are scoped to the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:735 | 3 | 10.15 | By default, all queries are polymorphic. By default,
                all queries are polymorphic. That is, the
                FROM clause of a query designates not only instances of the
                specific entity class(es) to which it
                explicitly refers, but subclasses as well. The
                instances returned by a query include instances of the
                subclasses that satisfy the query conditions | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1541 | 3 | 10.15 | Entity type expressions, described in section 4.6.17.5,
                as well as the use of downcasting,
                described in
                section 4.4.9, can be used to restrict query polymorphism. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1542 | 3 | 10.16 | Queries may be expressed in native SQL. The result of a
                native SQL query may consist of
                entities,
                unmanaged instances created via constructors, scalar values, or
                some combination of these. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:736 | 3 | 10.16 | The SQL query facility is intended to provide support
                for those cases where it is necessary to
                use the native SQL of the target database in use (and/or where
                Java Persistence QL cannot be used).
                Native SQL queries are not expected to be portable across
                databases. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1543 | 3 | 10.16.1 | mapping includes the mapping of the attributes of any
                embeddable classes that are part of the non-collection-valued
                entity state and attributes corresponding
                to
                foreign keys contained as part of the entity state | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1544 | 3 | 10.16.1 | Support for joins is currently limited to single-valued
                relationships that are mapped
                directly—i.e., not via join tables. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1545 | 3 | 10.16.1 | When an entity is to be returned from a native query,
                the SQL statement should select all of
                the columns
                that are mapped to the entity object. This should include
                foreign key columns to related entities. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1546 | 3 | 10.16.1 | when the results of the query are limited to entities
                of a single entity class and
                the mapping information can be derived from the columns of the
                SQL result and the object/relational
                mapping metadata—it is sufficient to specify only the expected
                class of the entity result. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1547 | 3 | 10.16.1 | When multiple entities are returned by a SQL query or
                when the column names of the SQL result
                do not
                correspond to those of the object/relational mapping metadata, a
                SqlResultSetMapping metadata
                definition must be provided to specify the entity mapping. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1548 | 3 | 10.16.1 | When the column names of the SQL result do not
                correspond to those of the object/relational
                mapping
                metadata, more explicit SQL result mapping metadata must be
                provided to enable the persistence provider
                runtime to map the JDBC results into the expected objects. This
                might arise, for example, when
                column aliases must be used in the SQL SELECT clause when the
                SQL result would otherwise contain
                multiple columns of the same name or when columns in the SQL
                result are the results of operators or
                functions. The FieldResult annotation element within the
                EntityResult annotation is used to
                specify the mapping of such columns to entity attributes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1549 | 3 | 10.16.1 | When the returned entity type contains an embeddable
                class, the FieldResult element must use a
                dot (“.”) notation to indicate which column maps to which field
                or property of the contained embeddable. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1550 | 3 | 10.16.1 | When the returned entity type is the owner of a
                single-valued relationship and the foreign key
                is a composite
                foreign key (composed of multiple columns), a FieldResult
                element should be used for each of the foreign
                key columns. The FieldResult element must use the dot (“.”)
                notation form to indicate the column that
                maps to each property or field of the target entity primary key. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1551 | 3 | 10.16.1 | If the target entity has a primary key of type IdClass,
                this specification takes the form of
                the name of
                the field or property for the relationship, followed by a dot
                (“.”), followed by the name of the field
                or property of the primary key in the target entity. The latter
                will be annotated with Id, as specified
                in section 11.1.19. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1552 | 3 | 10.16.1 | If the target entity has a primary key of type
                EmbeddedId, this specification is composed of
                the name
                of the field or property for the relationship, followed by a dot
                (“.”), followed by the name or the
                field or
                property of the primary key (i.e., the name of the field or
                property annotated as EmbeddedId), followed
                by the name of the corresponding field or property of the
                embedded primary key class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1553 | 3 | 10.16.1 | The FieldResult elements for the composite foreign key
                are combined to form the primary key
                EmbeddedId class for the target entity. This may then be used to
                subsequently retrieve the entity if the
                relationship is to be eagerly loaded. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1554 | 3 | 10.16.1 | The dot-notation form is not required to be supported
                for any usage other than for embeddables,
                composite
                foreign keys, or composite primary keys. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1555 | 3 | 10.16.2 | Instances of other classes (including non-managed
                entity instances) as well as scalar results
                can be
                returned by a native query. These can be used singly, or in
                combination, including with entity results. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1556 | 3 | 10.16.2.1 | Scalar results can be included in the query result by
                specifying the ColumnResult annotation
                element
                of the SqlResultSetMapping annotation. The intended type of the
                result can be specified using the type
                element of the ColumnResult annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1557 | 3 | 10.16.2.2 | The mapping to constructors is specified using the
                ConstructorResult annotation element of the
                SqlResultSetMapping annotation. The targetClass element of the
                ConstructorResult
                annotation specifies the class whose constructor corresponds to
                the specified columns. All columns
                corresponding to arguments of the intended constructor must be
                specified using the columns element of
                the ConstructorResult annotation in the same order as that of
                the argument list of the constructor.
                Any entities returned as constructor results will be in either
                the new or the detached state, depending
                on whether a primary key is retrieved for the constructed
                object. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1558 | 3 | 10.16.3 | When a SqlResultSetMapping specifies more than one
                mapping type (i.e., more than one of
                EntityResult, ConstructorResult, ColumnResult), then for each
                row in the SQL result,
                the query execution will result in an Object[] instance whose
                elements are as follows, in order: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1558.1 | 3 | 10.16.3 | any entity results (in the order in which they
                        are defined in the entities
                        element); | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1558.2 | 3 | 10.16.3 | any instances of classes corresponding to
                        constructor results (in the order defined
                        in
                        the classes element); | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1558.3 | 3 | 10.16.3 | and any instances corresponding to column
                        results (in the order defined in the
                        columns
                        element). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1559 | 3 | 10.16.3 | If there are any columns whose result mappings have not
                been specified, they are ignored. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:737 | 3 | 10.16.4 | The use of named parameters is not defined for native
                SQL queries. Only positional parameter
                binding for SQL queries may be used by portable applications. | false | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1560 | 3 | 10.17 | Stored procedures can be specified either by means of
                the NamedStoredProcedureQuery annotation
                or dynamically. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1561 | 3 | 10.17.1 | A stored procedure may return more than one result set. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1562 | 3 | 10.17.1 | the mapping of result sets can be specified either in
                terms of a resultClasses or as a
                resultSetMappings annotation element. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1563 | 3 | 10.17.1 | If there are multiple result sets, it is assumed that
                they will be mapped using the same
                mechanism — e.g., all via a set of result class mappings or all
                via a set of result set mappings. The
                order of the specification of these mappings must be the same as
                the order in which the result sets will
                be returned by the stored procedure invocation. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1564 | 3 | 10.17.1 | If the stored procedure returns one or more result sets
                and no resultClasses or
                resultSetMappings element has been specified, any result set
                will be returned as a list of type
                Object[]. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1565 | 3 | 10.17.1 | StoredProcedureParameter metadata needs to be provided
                for all parameters. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1566 | 3 | 10.17.1 | Parameters must be specified in the order in which they
                occur in the parameter list of the
                stored procedure. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1567 | 3 | 10.17.1 | If parameter names are used, the parameter name is used
                to bind the parameter value and to
                extract the output value (if the parameter is an INOUT or OUT
                parameter). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1568 | 3 | 10.17.1 | If parameter names are not specified, it is assumed
                that positional parameters are used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1569 | 3 | 10.17.2 | If the stored procedure is not defined using metadata,
                parameter and result set information
                must be provided
                dynamically. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1570 | 3 | 10.17.2 | All parameters of a dynamically-specified stored
                procedure query must be registered using the
                registerStoredProcedureParameter method of the
                StoredProcedureQuery interface. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1571 | 3 | 10.17.2 | Result set mapping information can be provided by means
                of the createStoredProcedure-
                Query method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1572 | 3 | 10.17.3 | The setParameter methods are used to set the values of
                all required IN and INOUT parameters. It
                is not required to set the values of stored procedure parameters
                for which default values have been
                defined by the stored procedure. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1573 | 3 | 10.17.3 | The case where there is only a single result set (or a
                single result) plus any results passed
                back via
                INOUT and OUT parameters is supported using the getResultList
                and getSingleResult
                methods. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1574 | 3 | 10.17.3 | The case where there is only an update count plus any
                results passed back via INOUT and OUT
                parameters
                is supported using the executeUpdate method. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1575 | 3 | 10.17.3 | The execute method supports both the simple case where
                scalar results are passed back only via
                INOUT and OUT parameters as well as the most general case
                (multiple result sets and/or update counts,
                possibly also in combination with output parameter values). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1576 | 3 | 10.17.3 | The execute method returns true if the first result is
                a result set, and false if it is an
                update count
                or there are no results other than through INOUT and OUT
                parameters, if any. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1577 | 3 | 10.17.3 | If the execute method returns true, the pending result
                set can be obtained by calling
                getResultList. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2496 | 3 | 10.17.3 | If the execute method returns true, the pending result
                set can be obtained by calling
                getSingleResult. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1578 | 3 | 10.17.3 | The hasMoreResults method can then be used to test for
                further results. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1579 | 3 | 10.17.3 | If execute or hasMoreResults returns false, the
                getUpdateCount method can be called to
                obtain the pending result if it is an update count. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1580 | 3 | 10.17.3 | The getUpdateCount method will return either the
                update count (zero or greater) or -1 if there is no update count
                (i.e., either the next result is a
                result set or
                there is no next update count). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2497 | 3 | 10.17.3 | For portability, results that correspond to JDBC result sets and update counts need to be processed
                before the values of any INOUT or OUT parameters are extracted. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1581 | 3 | 10.17.3 | After results returned through getResultList and
                getUpdateCount have been exhausted,
                results returned through INOUT and OUT parameters can be
                retrieved. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1582 | 3 | 10.17.3 | results that correspond to JDBC result sets and update
                counts need to be processed
                before the values of any INOUT or OUT parameters are extracted. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2498 | 3 | 10.17.3 | The getOutputParameterValue methods are used to retrieve the values passed back from the
                procedure through INOUT and OUT parameters. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2499 | 3 | 10.17.3 | When using REF_CURSOR parameters for result sets, the update counts should be exhausted before
                calling getResultList to retrieve the result set. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2500 | 3 | 10.17.3 | Alternatively, the REF_CURSOR result set can be retrieved through getOutputParameterValue. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2501 | 3 | 10.17.3 | Result set mappings will be applied to results corresponding
                to REF_CURSOR parameters in the order the REF_CURSOR parameters were registered
                with the query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1583 | 3 | 10.17.3 | In the simplest case, where results are returned only
                via INOUT and OUT parameters, execute can
                be
                followed immediately by calls to getOutputParameterValue. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:738 | 3 | 11 | Summary of Exceptions | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:739 | 3 | 11 | PersistenceException | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:740 | 3 | 11 | TransactionRequiredException | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:738.1 | 3 | 11 | OptimisticLockException | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:738.2 | 3 | 11 | PessimisticLockException | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:738.3 | 3 | 11 | LockTimeoutException | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:741 | 3 | 11 | RollbackException | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:742 | 3 | 11 | EntityExistsException | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:743 | 3 | 11 | EntityNotFoundException | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:744 | 3 | 11 | NoResultException | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:745 | 3 | 11 | NonUniqueResultException | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:738.4 | 3 | 11 | QueryTimeoutException | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:746 | 4 | 2 | A Java Persistence query language statement may be
                either: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:746.1 | 4 | 2 | a select statement | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:746.2 | 4 | 2 | an update statement | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:746.3 | 4 | 2 | a delete statement | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:750 | 4 | 2 | Any Any Java Persistence query language statement may
                be constructed dynically or may be
                statically defined in a metadata annotation or XML descriptor
                element. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:751 | 4 | 2 | All statement types may have parameters. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:752 | 4 | 2.1 | A select statement is a string which consists of the
                following clauses: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:753 | 4 | 2.1 | a SELECT clause, which determines the type of
                        the objects or values to be selected. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:754 | 4 | 2.1 | a FROM clause, which provides declaration that
                        designate the domain to which the
                        expressions specified in the other clauses of the query
                        apply | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:755 | 4 | 2.1 | an optional WHERE clause, which may be used to
                        restrict the results that are
                        returned
                        by the query | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:756 | 4 | 2.1 | an optional GROUP BY clause, which allows query
                        results to be aggregated in terms
                        of
                        groups | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:757 | 4 | 2.1 | an optional HAVING clause, which allows
                        filtering over aggregated groups | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:758 | 4 | 2.1 | an optional ORDER BY clause, which may be used
                        to order the results that are
                        returned
                        by the query | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:312 | 4 | 2.1 | A select statement must always have a SELECT and a FROM
                clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:759 | 4 | 2.2 | Update and delete statements provide bulk operations
                over sets of entities. The update and
                delete clauses determine the type
                of the entities to be updated or deleted. The WHERE clause may
                be used to restrict the scope of the
                update or delete operation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1584 | 4 | 3 | The type of
                an expression is derived from the structure of the expression,
                the abstract schema types of the
                identification
                variable declarations, the types to which the persistent
                attributes evaluate, and the types of literals. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:760 | 4 | 3 | The abstract schema type of an entity or embeddable is
                derived from its class and the metadata
                information provided by Java language annotations or in the XML
                descriptor. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:761 | 4 | 3 | Abstract schema types are specific to the query
                language data model. The persistence provider
                is not
                required to implement or otherwise materialize an abstract
                schema type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:761 | 4 | 3 | The domain of a query consists of the abstract schema
                types of all entities that are defined in
                the same persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:762 | 4 | 3.1 | Entities are designated in query strings by their
                entity names. The entity name is defined by
                the name element of the Entity annotation (or the entity-name
                XML descriptor element), and defaults to
                the unqualified name of the entity class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1585 | 4 | 3.1 | Entity names are scoped within the persistence unit and
                must be unique within the persistence
                unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2451 | 4 | 4 | Identification variables designate instances of a
                particular abstract schema type. The FROM clause can
                contain multiple identification variable declarations separated
                by a comma | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:317 | 4 | 4 | Identification variables designate instances of a
                particular abstract schema type. The
                FROM clause can contain multiple identification variable
                declarations separated by a comma: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:317.4 | 4 | 4 | identification_variable_declaration | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:317.1 | 4 | 4 | range_variable_declaration | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:317.5 | 4 | 4 | join | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:317.6 | 4 | 4 | fetch_join | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:317.7 | 4 | 4 | join_association_path_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:317.8 | 4 | 4 | join_collection_valued_path_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:317.9 | 4 | 4 | join_single_valued_path_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:317.10 | 4 | 4 | join_spec | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:317.2 | 4 | 4 | collection_member_declaration | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:317.3 | 4 | 4 | join_spec | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1586 | 4 | 4.1 | An identifier is a character sequence of unlimited
                length. The character sequence must begin
                with a Java identifier start character, and all other characters
                must be Java identifier part
                characters. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1587 | 4 | 4.1 | An identifier start character is any character for which the
                method Character.isJavaIdentifierStart
                returns true. This includes the underscore (_) character and the
                dollar sign ($) character. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1588 | 4 | 4.1 | An identifier part character is any character for which the
                method Character.isJavaIdentifierPart
                returns true | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:763 | 4 | 4.1 | Reserved identifiers are case insensitive. Reserved
                identifiers must not be used as
                identification variables or result variables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:764 | 4 | 4.2 | All identification variables must be declared in the
                FROM clause. Identification variables
                cannot be declared in other clauses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1589 | 4 | 4.2 | An identification variable must not be a reserved identifier or
                have the same name as any entity in the
                same persistence unit. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:319 | 4 | 4.2 | Identification variables are case insensitive. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1590 | 4 | 4.2 | An identification variable evaluates to a value of the type of
                the expression used in declaring the
                variable. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1591 | 4 | 4.2 | An identification variable can range over an entity, embeddable,
                or basic abstract schema type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1592 | 4 | 4.2 | Note that for identification variables referring to an instance
                of an association or collection
                represented
                as a java.util.Map, the identification variable is of the
                abstract schema type of the map value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1593 | 4 | 4.2 | An identification variable always designates a reference to a
                single value. It is declared in one of
                three
                ways: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1593.1 | 4 | 4.2 | in a range variable declaration | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1593.2 | 4 | 4.2 | in a join clause | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1593.3 | 4 | 4.2 | in a collection member declaration | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1594 | 4 | 4.2 | The identification
                variable declarations are evaluated from left to right in the
                FROM clause, and an identification
                variable declaration can use the result of a preceding
                identification variable declaration of the query
                string. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1595 | 4 | 4.2 | All identification variables used in the SELECT, WHERE, ORDER
                BY, GROUP BY, or HAVING
                clause of a SELECT statement must be declared in the FROM
                clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1596 | 4 | 4.2 | All identification variables used in the SELECT, WHERE, ORDER
                BY, GROUP BY, or HAVING
                clause of a DELETE statement must be declared in the FROM
                clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1597 | 4 | 4.2 | The identification variables used in the WHERE clause of an
                UPDATE statement must be declared in the
                UPDATE clause | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1599 | 4 | 4.2 | An identification variable is scoped to the query (or subquery)
                in which it is defined and is also
                visible
                to any subqueries within that query scope that do not define an
                identification variable of the same
                name. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1600 | 4 | 4.3 | The syntax for declaring an identification variable as a range
                variable is similar to that of SQL;
                optionally,
                it uses the AS keyword. A range variable designates an entity
                abstract schema type. A range variable
                must not designate an embeddable class abstract schema type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:320 | 4 | 4.3 | In order to select values by comparing more than one instance of
                an entity abstract schema type, more
                than one identification variable ranging over the entity's
                abstract schema type is needed in the FROM
                clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:328 | 4 | 4.4 | The evaluation of a path expression terminating in a
                state-field results in the abstract schema
                type corresponding to the Java type designed by the state-field. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1601 | 4 | 4.4 | An identification variable followed by the navigation operator
                (.) and a state field or association
                field is
                a path expression. The type of the path expression is the type
                computed as the result of navigation; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1601.1 | 4 | 4.4 | the type of the state field | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1601.2 | 4 | 4.4 | association field to which the expression navigates | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1602 | 4 | 4.4 | The type of a path
                expression that navigates to an association field may be
                specified as a subtype of the declared type of
                the association field by means of the TREAT operator. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1603 | 4 | 4.4 | An identification variable qualified by the KEY, VALUE, or ENTRY
                operator is a path expression. The
                KEY, VALUE, and ENTRY operators may only be applied to
                identification variables that correspond to | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1603.1 | 4 | 4.4 | map-valued associations | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1603.2 | 4 | 4.4 | map-valued element collections | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1604 | 4 | 4.4 | The type of the path expression is the type
                computed as the result of the operation; that is, the abstract
                schema type of the field that is the
                value of
                the KEY, VALUE, or ENTRY operator (the map key, map value, or
                map entry respectively) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1605 | 4 | 4.4 | Note that use of VALUE is optional, as an identification
                variable referring to an association of type
                java.util.Map is of the abstract schema type of the map value. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1606 | 4 | 4.4 | A path expression using the KEY or VALUE operator can be further
                composed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1607 | 4 | 4.4 | A path expression using the ENTRY operator is terminal. It
                cannot be further composed and can only
                appear in the
                SELECT list of a query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:326 | 4 | 4.4 | a path expression that leads to an association field or
                to a field whose type is an embeddable
                class may be further composed. Path expressions can be composed
                from other path expressions if the
                original path expression evaluates to a single-valued type (not
                a collection). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:329 | 4 | 4.4 | Path expression navigability is composed using "inner join"
                semantics. That is, if the value of a
                non-terminal association-field in the path expression is null,
                the path is considered to have no value,
                and does not participate in the determination of the result. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1608 | 4 | 4.4.1 | An identification variable used in a
                single_valued_object_path_expression or in a
                collection_valued_path_expression may be an unqualified
                identification variable or an identification
                variable to which the KEY or VALUE function has been applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1609 | 4 | 4.4.1 | general_identification_variable ::= identification_variable |
                map_field_identification_variable | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1610 | 4 | 4.4.1 | The type of an entity-valued path expression or an entity-valued
                subpath of a path expression used in a
                WHERE clause may be specified as a subtype of the corresponding
                declared type by means of the
                TREAT operator. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:765 | 4 | 4.4.1 | The syntax for single-valued path expressions and
                collection-valued path expression is as
                follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:766 | 4 | 4.4.1 | single_valued_path_expression ::=
                        qualified_identification_variable |
                        TREAT(qualified_identification_variable AS subtype) |
                        state_field_path_expression |
                        single_valued_object_path_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:767 | 4 | 4.4.1 | state_field_path_expression ::=
                        {identification_variable |
                        single_valued_association_path_expression}.state_field | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:768 | 4 | 4.4.1 | single_valued_association_path_expression ::=
                        identification_variable.{single_valued_association_field.}*single_valued_association_field | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:769 | 4 | 4.4.1 | collection_valued_path_expression ::=
                        identification_variable.{single_valued_association_field.}*collection_valued_association_field | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:770 | 4 | 4.4.1 | state_field := simple_state_field |
                        {embedded_class_state_field.}*simple_state_field | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:765.1 | 4 | 4.4.1 | general_subpath ::= simple_subpath |
                        treated_subpath{.single_valued_object_field}* | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:765.2 | 4 | 4.4.1 | simple_subpath ::=
                        general_identification_variable |
                        general_identification_variable{.single_valued_object_field}* | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:765.3 | 4 | 4.4.1 | treated_subpath ::= TREAT(general_subpath AS
                        subtype) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:765.4 | 4 | 4.4.1 | state_field_path_expression ::=
                        general_subpath.state_field | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:765.5 | 4 | 4.4.1 | state_valued_path_expression ::=
                        state_field_path_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:765.6 | 4 | 4.4.1 | single_valued_object_path_expression ::=
                        general_subpath.single_valued_object_field | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:765.7 | 4 | 4.4.1 | collection_valued_path_expression ::=
                        general_subpath.collection_valued_field | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:322 | 4 | 4.4.1 | A single_valued_object_field is designated by the name of an
                association field in a one-to-one or
                many-to-one relationship or a field of embeddable class type.
                The type of a
                single_valued_object_field is the abstract schema type of the
                related entity or embeddable class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1611 | 4 | 4.4.1 | A state _field is designated by the name of an entity or
                embeddable class state field that corresponds
                to
                a basic type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:323 | 4 | 4.4.1 | A collection_valued_field is designated by the name of an
                association field in a one-to-many or a
                many-to-many relationship or by the name of an element
                collection field. The type of a
                collection_valued_field is a collection of values of the
                abstract schema type of the related entity or
                element
                type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1612 | 4 | 4.4.1 | It is illegal to use a collection_valued_path_expression other
                than in the FROM clause of a query
                except | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1612.1 | 4 | 4.4.1 | in an empty_collection_comparison_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1612.2 | 4 | 4.4.1 | in a collection_member_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1612.3 | 4 | 4.4.1 | as an argument to the SIZE operator | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:773 | 4 | 4.5 | An inner join may be implicitly specified by the use of
                a cartesian product in the FROM clause
                and a join condition in the WHERE clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:774 | 4 | 4.5 | The syntax for explicit join operations is as
                follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:775 | 4 | 4.5 | join::= join_spec
                        join_association_path_expression [AS]
                        identification_variable
                        [join_condition] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:776 | 4 | 4.5 | fetch_join ::= join_spec FETCH
                        join_association_path_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:777 | 4 | 4.5 | join_association_path_expression ::=
                        join_collection_valued_path_expression |
                        join_single_valued_path_expression |
                        TREAT(join_collection_valued_path_expression AS
                        subtype) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:778 | 4 | 4.5 | join_spec::= [ LEFT [OUTER] | INNER ] JOIN | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:774.1 | 4 | 4.5 | join_condition ::= ON conditional_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:779 | 4 | 4.5.1 | The syntax for the inner join operation is: [ INNER ]
                JOIN join_association_path_expression
                [AS] identification_variable [join_condition] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1613 | 4 | 4.5.1 | The keyword INNER may optionally be used | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1614 | 4 | 4.5.1 | A join condition may be specified for an inner join. This is
                equivalent to specification of the same
                condition in the WHERE clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:780 | 4 | 4.5.2 | LEFT JOIN and LEFT OUTER JOIN are synonymous. They
                enable retrieval of a set of entities where
                matching values in the join condition may be absent. The syntax
                for a left outer join is: LEFT [OUTER]
                JOIN join_association_path_expression [AS]
                identification_variable [join_condition] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1615 | 4 | 4.5.2 | An outer join without a specified join condition has an implicit
                join condition over the foreign key
                relationship corresponding to the
                join_association_path_expression. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1616 | 4 | 4.5.2 | An outer join with an explicit ON condition would cause an
                additional specified join condition to be
                added to the generated SQL: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:781 | 4 | 4.5.3 | A FETCH JOIN enables the fetching of an association or element
                collection as a side effect of the
                execution of a query. The syntax for a fetch join is fetch_join
                ::= [ LEFT [OUTER] | INNER ] JOIN FETCH
                join_association_path_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:782 | 4 | 4.5.3 | The association referenced by the right side of the FETCH JOIN
                clause must be an association or element
                collection that is referenced from an entity or embeddable that
                is returned as a result of the query. It
                is not permitted to specify an identification variable for the
                objects referenced by the right side of
                the FETCH JOIN clause, and hence references to the implicitly
                fetched entities or elements cannot appear
                elsewhere in the query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:321 | 4 | 4.6 | An identification variable of a collection member declaration is
                declared using a special operator, the
                reserved identifier IN. The argument to the IN operator takes a
                collection valued path expression. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:783 | 4 | 4.6 | The path expression evaluates to a collection type
                specified as a result of navigation to a
                collection-valued association field of an entity or embeddable
                class abstract schema type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1617 | 4 | 4.6 | collection_member_declaration ::= IN
                (collection_valued_path_expression) [AS] identification_variable | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1618 | 4 | 4.7 | The Java Persistence query language treats the FROM clause
                similarly to SQL in that the declared
                identification
                variables affect the results of the query even if they are not
                used in the WHERE clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:784 | 4 | 4.8 | Java Persistence queries are automatically polymorphic.
                The FROM clause of a query designates
                not only instances of the specific entity class(es) to which it
                explicitly refers but instances of
                subclasses of those classes as well. The instances returned by a
                query thus include instances of the
                subclasses that satisfy the query criteria. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1619 | 4 | 4.8 | Non-polymorphic queries or queries whose polymorphism is
                restricted can be specified using entity
                type expressions in the WHERE clause to restrict the domain of
                the query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1620 | 4 | 4.9 | The use of the TREAT operator is supported for downcasting
                within path expressions in the FROM and
                WHERE clauses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1621 | 4 | 4.9 | If during query execution the first argument to the TREAT
                operator is not a subtype (proper or
                improper) of the target type, the path is considered to have no
                value, and does not participate in the
                determination of the result. That is, in the case of a join, the
                referenced object does not participate
                in the
                result, and in the case of a restriction, the associated
                predicate is false. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1622 | 4 | 4.9 | If the target type is not a subtype (proper or improper) of the
                static type of the first argument,
                the query is invalid. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:785 | 4 | 5 | The WHERE clause restricts the result of a select
                statement or the scope of an update or
                delete operation. A WHERE clause is defined as follows:
                where_clause ::= WHERE conditional_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1623 | 4 | 5 | The GROUP BY construct enables the aggregation of values
                according to the properties of an entity class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1624 | 4 | 5 | The HAVING construct enables conditions to be specified that
                further restrict the query result as
                restrictions upon the groups. The syntax of the HAVING clause is
                as follows: having_clause ::= HAVING
                conditional_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:330 | 4 | 6.1 | A string literal is enclosed in single quotes—for example:
                ‘literal’. A string literal that includes a
                single quote is represented by two single quotes—for example:
                ‘literal’’s’. String literals in queries,
                like Java String literals, use unicode character encoding. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1625 | 4 | 6.1 | The use of Java escape notation is not supported in
                query string literals. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1626 | 4 | 6.1 | Exact numeric literals support the use of Java integer literal
                syntax as well as SQL exact numeric
                literal syntax. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1627 | 4 | 6.1 | Approximate literals support the use Java floating point literal
                syntax as well as SQL approximate
                numeric literal syntax. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1628 | 4 | 6.1 | Appropriate suffixes can be used to indicate the specific type
                of a numeric literal in accordance with
                the
                Java Language Specification. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1629 | 4 | 6.1 | Support for the use of hexadecimal and octal numeric literals is
                not required by this specification. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1630 | 4 | 6.1 | Enum literals support the use of Java enum literal syntax. The
                fully qualified enum class name must be
                specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1631 | 4 | 6.1 | The JDBC escape syntax may be used for the specification of
                date, time, and timestamp literals. The
                portability of this syntax for date, time, and timestamp
                literals is dependent upon the JDBC driver in
                use. Persistence providers are not required to translate from
                this syntax into the native syntax of the
                database or driver. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:334 | 4 | 6.1 | The boolean literals are TRUE and FALSE. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1632 | 4 | 6.1 | Entity type literals are specified by entity names | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:331 | 4 | 6.1 | An exact numeric literal is a numeric value without a
                decimal point. Exact numeric literals
                support numbers in the range of Java long. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:332 | 4 | 6.1 | Although predefined reserved literals appear in upper
                case, they are case insensitive. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:786 | 4 | 6.2 | All identification variables used in the WHERE or
                HAVING clause of a SELECT or DELETE statement
                must be declared in the FROM clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:787 | 4 | 6.2 | The identification variables used in the WHERE clause
                of an UPDATE statement must be declared
                in the UPDATE clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:788 | 4 | 6.3 | It is illegal to use a
                collection_valued_path_expression within a WHERE or HAVING
                clause as
                part of a conditional expression except in an
                empty_collection_comparison_expression, in a
                collection_member_expression, or as an argument to the SIZE
                operator. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1634 | 4 | 6.4 | Either positional or named parameters may be used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1635 | 4 | 6.4 | Positional and named parameters must not be mixed in a
                single query. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1636 | 4 | 6.4 | Input parameters can only be used in the WHERE clause
                or HAVING clause of a query or as the new
                value for an update item in the SET clause of an update
                statement. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:342 | 4 | 6.4 | Note that if an input parameter value is null,
                comparison operations involving the input
                parameter will return an unknown value. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:343 | 4 | 6.4 | Note that if an input parameter value is null,
                arithmetic operations involving the input
                parameter will return an unknown value. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1637 | 4 | 6.4 | All input parameters must be single-valued, except in
                IN expressions | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1638 | 4 | 6.4.1 | Input parameters are designated by the question mark
                (?) prefix followed by an integer. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:338 | 4 | 6.4.1 | Input parameters are numbered starting from 1 | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1639 | 4 | 6.4.1 | The same parameter can be used more than once in the
                query string. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1640 | 4 | 6.4.1 | The ordering of the use of parameters within the query
                string need not conform to the order of
                the positional parameters. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:789 | 4 | 6.4.2 | A named parameter is denoted by an identifier that is
                prefixed by the ":" symbol. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1641 | 4 | 6.4.2 | Named parameters are case sensitive. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1642 | 4 | 6.4.2 | The same named parameter can be used more than once in
                the query string. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:345 | 4 | 6.5 | Conditional expressions are composed of other conditional
                expressions, comparison operators, logical
                operations, path expressions that evaluate to boolean values and
                boolean literals and boolean input
                parameters. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:347 | 4 | 6.7 | Arithmetic expressions can be used in comparison expressions. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1643 | 4 | 6.5 | The scalar expressions can be used in conditional expressions | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1644 | 4 | 6.5 | Aggregate functions can only be used in conditional expressions
                in a HAVING clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:346 | 4 | 6.5 | Standard bracketing () for ordering expression evaluation is
                supported. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1645 | 4 | 6.5 | Conditional expressions are defined as follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1645.1 | 4 | 6.5 | conditional_expression ::= conditional_term |
                        conditional_expression OR
                        conditional_term | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1645.2 | 4 | 6.5 | conditional_term ::= conditional_factor |
                        conditional_term AND conditional_factor | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1645.3 | 4 | 6.5 | conditional_factor ::= [ NOT ]
                        conditional_primary | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1645.4 | 4 | 6.5 | conditional_primary ::= simple_cond_expression
                        | (conditional_expression) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1645.5 | 4 | 6.5 | simple_cond_expression ::= comparison_expression |
                        between_expression | in_expression |
                        like_expression | null_comparison_expression |
                        empty_collection_comparison_expression |
                        collection_member_expression | exists_expression | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:348 | 4 | 6.6 | operators are listed below in order of decreasing precedence. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:348.1 | 4 | 6.6 | Navigation operator (.) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:348.2 | 4 | 6.6 | Arithmetic operators:
                        +, - unary
                        *, / multiplication and division
                        +, - addition and subtraction | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:348.3 | 4 | 6.6 | Comparison operators : =, >, >=,<,<=,
                        <>, (not equal), [NOT] BETWEEN, [NOT] LIKE,
                        [NOT] IN, IS [NOT] NULL, IS [NOT] EMPTY, [NOT] MEMBER
                        [OF], [NOT] EXISTS | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:348.4 | 4 | 6.6 | Logical operators: NOT AND OR | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1646 | 4 | 6.7 | The syntax for the use of comparison expressions in a
                conditional expression is as follows | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1646.1 | 4 | 6.7 | comparison_expression ::=
                        string_expression comparison_operator {string_expression
                        | all_or_any_expression} |
                        boolean_expression { =|
                        <>
                        } {boolean_expression | all_or_any_expression} |
                        enum_expression { =|<>} {enum_expression |
                        all_or_any_expression} |
                        datetime_expression comparison_operator
                        {datetime_expression | all_or_any_expression} |
                        entity_expression { = |<>} {entity_expression |
                        all_or_any_expression} |
                        arithmetic_expression comparison_operator
                        {arithmetic_expression | all_or_any_expression} |
                        entity_type_expression { = |<>}
                        entity_type_expression} | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1646.2 | 4 | 6.7 | comparison_operator ::= = | > | >= | < | <=
                        | <> | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:349 | 4 | 6.8 | The syntax for the use of the comparison operator [NOT] BETWEEN
                in a conditional expression is as
                follows: arithmetic_expression [NOT] BETWEEN arithmetic-expr AND
                arithmetic-expr | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:349.1 | 4 | 6.8 | string_expression [NOT] BETWEEN string-expression AND
                        string-expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:349.2 | 4 | 6.8 | datetime_expression [NOT] BETWEEN datetime-expression
                        AND datetime-expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:350 | 4 | 6.8 | The BETWEEN expression x BETWEEN y and z is semantically
                equivalent to: y less than = x AND x less than
                = z | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1647 | 4 | 6.8 | The rules for unknown and NULL values in comparison operations
                apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:352 | 4 | 6.9 | in_expression ::=
                {state_valued_path_expression | type_discriminator} [NOT] IN
                { ( in_item {, in_item}* ) | (subquery) |
                collection_valued_input_parameter } | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1648 | 4 | 6.9 | in_item ::= literal | single_valued_input_parameter | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1649 | 4 | 6.9 | The state_valued_path_expression must have a string, numeric,
                date, time, timestamp, or enum
                value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:352.1 | 4 | 6.9 | The literal and/or input parameter values must be like the same
                abstract schema type of the
                state_valued_path_expression in type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:352.2 | 4 | 6.9 | The results of the subquery must be like the same abstract
                schema type of the
                state_valued_path_expression in type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:353 | 4 | 6.9 | There must be at least one element in the comma separated list
                that defines the set of values for the IN
                expression. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:354 | 4 | 6.9 | The expression o.country IN ('UK', 'US', 'France') is equivalent
                to the expression (o.country = 'UK') OR
                (o.country = 'US') OR (o.country = 'France') | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:351 | 4 | 6.9 | If the value of a state_valued_path_expression or in_item in an
                IN or NOT IN expression is NULL or
                unknown, the value of the expression is unknown. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:358 | 4 | 6.10 | like_expression ::= string_expression [NOT] LIKE pattern_value
                [ESCAPE escape_character].The
                string_expression must have a string value. The pattern_value is
                a string literal or a string-valued
                input parameter in which an underscore (_) stands for any single
                character, a percent (%) character
                stands for any sequence of characters (including the empty
                sequence), and all other characters stand for
                themselves. The optional escape_character is a single-character
                string literal or a character-valued
                input parameter (i.e., char or Character) and is used to escape
                the special meaning of the underscore
                and percent characters in pattern_value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:356 | 4 | 6.10 | If the value of the string_expression or pattern_value is NULL
                or unknown, the value of the LIKE
                expression is unknown. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:357 | 4 | 6.10 | If the escape_character is specified and is NULL, the value of
                the LIKE expression is unknown. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:359 | 4 | 6.11 | null_comparison_expression ::= {single_valued_path_expression |
                input_parameter } IS [NOT] NULL. A null
                comparison expression tests whether or not the single-valued
                path expression or input parameter
                is a NULL value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1650 | 4 | 6.11 | Null comparisons over instances of embeddable class types are
                not supported. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:361 | 4 | 6.12 | empty_collection_comparison_expression ::=
                collection_valued_path_expression IS [NOT] EMPTY | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:362 | 4 | 6.12 | If the value of the collection-valued path expression in an
                empty collection comparison expression is
                unknown, the value of the empty comparison expression is
                unknown. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:363 | 4 | 6.13 | collection_member_expression ::= entity_or_value_expression
                [NOT] MEMBER [OF]
                collection_valued_path_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:363.1 | 4 | 6.13 | entity_or_value_expression ::=
                single_valued_object_path_expression |
                state_valued_path_expression |
                simple_entity_or_value_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:363.2 | 4 | 6.13 | simple_entity_or_value_expression ::= identification_variable |
                input_parameter | literal | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1651 | 4 | 6.13 | Expressions that evaluate to embeddable types are not supported
                in collection member expressions. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:365 | 4 | 6.13 | If the collection valued path expression designates an empty
                collection, the value of the MEMBER OF
                expression is FALSE and the value of the NOT MEMBER OF
                expression is TRUE. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:364 | 4 | 6.13 | if the value of the collection_valued_path_expression or
                entity_or_value_expression in the collection
                member expression is NULL or unknown, the value of the
                collection member expression is unknown. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:791 | 4 | 6.14 | An EXISTS expression is a predicate that is true only
                if the result of the subquery consists of
                one or more values and that is false otherwise. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:792 | 4 | 6.14 | exists_expression::= [NOT] EXISTS (subquery) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:793 | 4 | 6.15 | An ALL conditional expression is a predicate over a
                subquery that is true if the comparison
                operation is true for all values in the result of the subquery
                or the result of the subquery is empty.
                An ALL conditional
                expression is false if the result of the comparison is false for
                at least one value of the result of the
                subquery, and is unknown if neither true nor false. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:794 | 4 | 6.15 | An ANY conditional expression is a predicate over a
                subquery that is true if the comparison
                operation is true for some value in the result of the subquery.
                An ANY conditional expression is false
                if the result of
                the subquery is empty or if the comparison operation is false
                for every value in the result of the
                subquery,
                and is unknown if neither true nor false. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:795 | 4 | 6.15 | The keyword SOME is synonymous with ANY. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:797 | 4 | 6.15 | The comparison operators used with ALL or ANY
                conditional expressions are =, <, <=, >,
                > =, < >. The result of the subquery must be like that
                of the other argument to the comparison
                operator in type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:798 | 4 | 6.15 | all_or_any_expression ::= {ALL | ANY | SOME} (subquery) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:799 | 4 | 6.16 | Subqueries may be used in the WHERE or HAVING clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:800 | 4 | 6.16 | The syntax for subqueries is as follows. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:801 | 4 | 6.16 | subquery ::= simple_select_clause
                        subquery_from_clause [where_clause]
                        [groupby_clause]
                        [having_clause] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:802 | 4 | 6.16 | simple_select_clause ::= SELECT [DISTINCT]
                        simple_select_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:800.1 | 4 | 6.16 | subquery_from_clause ::= FROM
                        subselect_identification_variable_declaration
                        {,subselect_identification_variable_declaration |
                        collection_member_declaration }* | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:800.2 | 4 | 6.16 | subselect_identification_variable_declaration ::=
                        identification_variable_declaration |
                        derived_path_expression [AS] identification_variable
                        {join}* |
                        derived_collection_member_declaration | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:800.3 | 4 | 6.16 | simple_select_expression::=
                        single_valued_path_expression | scalar_expression |
                        aggregate_expression | identification_variable | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:800.4 | 4 | 6.16 | derived_path_expression ::=
                        general_derived_path.single_valued_object_field |
                        general_derived_path.collection_valued_field | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:800.5 | 4 | 6.16 | general_derived_path ::= simple_derived_path |
                        treated_derived_path{.single_valued_object_field}* | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:800.6 | 4 | 6.16 | simple_derived_path ::=
                        superquery_identification_variable{.single_valued_object_field}* | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:800.7 | 4 | 6.16 | treated_derived_path ::=
                        TREAT(general_derived_path AS subtype) | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:800.8 | 4 | 6.16 | derived_collection_member_declaration ::= IN
                        superquery_identification_variable.{single_valued_object_field.}*collection_valued_field | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2512 | 4 | 6.17 | scalar_expression::=
                arithmetic_expression |
                string_expression |
                enum_expression |
                datetime_expression |
                boolean_expression |
                case_expression |
                entity_type_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1652 | 4 | 6.17.1 | +, - unary
                *, / multiplication and division
                +, - addition and subtraction | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:344 | 4 | 6.17.1 | Arithmetic operations use numeric promotion. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1653 | 4 | 6.17.2 | The Java Persistence query language includes the built-in
                functions which may be used in the SELECT,
                WHERE or HAVING clause of a query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:367 | 4 | 6.17.2 | If the value of any argument to a functional expression is NULL
                or UNKNOWN, the value of the functional
                expression is UNKNOWN. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:369 | 4 | 6.17.2.1 | String Functions | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:369.1 | 4 | 6.17.2.1 | functions_returning_strings ::=
                        CONCAT(string_expression, string_expression {,
                        string_expression}* ). The CONCAT function returns a
                        string that is
                        a
                        concatenation of its arguments. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:369.2 | 4 | 6.17.2.1 | SUBSTRING(string_expression, arithmetic_expression [,
                        arithmetic_expression]). The second
                        and
                        third arguments of the SUBSTRING function denote the
                        starting position and length of the
                        substring to be returned. These arguments are integers.
                        The third argument is optional. If
                        it is
                        not specified, the substring from the start position to
                        the end of the string is returned.
                        The
                        first position of a string is denoted by 1. The
                        SUBSTRING function returns a string. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:369.9 | 4 | 6.17.2.1 | trim_specification ::= LEADING | TRAILING |
                        BOTH. The TRIM function trims the
                        specified
                        character from a string. If the character to be trimmed
                        is not
                        specified, it will be assumed to be space (or blank).
                        The optional trim_character is a
                        single-character
                        string literal or a character-valued input parameter
                        (i.e., char or Character). If a trim
                        specification
                        is not provided, it defaults to BOTH. The TRIM function
                        returns the trimmed string. Note
                        that
                        not all
                        databases support the use of a trim character other than
                        the space character; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:369.10 | 4 | 6.17.2.1 | LOWER(string_expression). The LOWER function converts a
                        string to upper case. LOWER returns
                        a
                        string. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:369.11 | 4 | 6.17.2.1 | UPPER (string_expression). The UPPER function converts a
                        string to upper case. UPPER returns
                        a
                        string. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:369.4 | 4 | 6.17.2.1 | LENGTH(string_expression). The LENGTH function
                        returns the length of the string in
                        characters as an integer. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:369.3 | 4 | 6.17.2.1 | LOCATE(string_expression, string_expression[,
                        arithmetic_expression]). The LOCATE function
                        returns the position of a given string within a string,
                        starting the search at a
                        specified
                        position. It returns the first position at which the
                        string was found as an integer. The
                        first
                        argument
                        is the string to be located; the second argument is the
                        string to be searched; the optional
                        third
                        argument
                        is an integer that represents the string position at
                        which the search is started (by
                        default,
                        the
                        beginning of
                        the string to be searched). The first position in a
                        string is denoted by 1. If the string is
                        not
                        found,
                        0 is
                        returned. Note that not all databases support the use of
                        the third argument to LOCATE | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:368 | 4 | 6.17.2.2 | Numeric arguments to these functions may correspond to the
                numeric Java object types as well as the
                primitive numeric types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:369.5 | 4 | 6.17.2.2 | ABS(arithmetic_expression). The ABS function takes a numeric
                argument and returns a number (integer,
                float, double) of the same type as the argument to the function. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:369.6 | 4 | 6.17.2.2 | SQRT(arithmetic_expression). The SQRT function takes a numeric
                argument and returns a double. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:369.7 | 4 | 6.17.2.2 | MOD(arithmetic_expression, arithmetic_expression). The MOD
                function takes two integer arguments and
                returns an integer. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:369.8 | 4 | 6.17.2.2 | SIZE(collection_valued_path_expression). The SIZE function
                returns an integer value, the number of
                elements of the collection. If the collection is empty, the SIZE
                function evaluates to zero. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1654 | 4 | 6.17.2.2 | INDEX(identification_variable). The INDEX function returns an
                integer value corresponding to the
                position of its argument in an ordered list. The INDEX function
                can only be applied to identification
                variables denoting types for which an order column has been
                specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1655 | 4 | 6.17.2.3 | functions_returning_datetime:= CURRENT_DATE | CURRENT_TIME |
                CURRENT_TIMESTAMP. The datetime functions
                return the value of current date, time, and timestamp on the
                database server. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1656 | 4 | 6.17.3 | The invocation of functions other than the built-in functions of
                the Java Persistence query language is
                supported by means of the function_invocation syntax. This
                includes the invocation of predefined
                database
                functions and user-defined database functions. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1656.1 | 4 | 6.17.3 | function_invocation::= FUNCTION(function_name {,
                        function_arg}*)
                        function_arg ::= literal | state_valued_path_expression
                        | input_parameter |
                        scalar_expression | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1656.2 | 4 | 6.17.3 | The function_name argument is a string that denotes the
                        database function that is to be
                        invoked.
                        The
                        arguments must be suitable for the database function
                        that is to be invoked. The result of
                        the
                        function
                        must be suitable for the invocation context. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1656.3 | 4 | 6.17.3 | The function may be a database-defined function or a
                        user-defined function. The function may
                        be
                        a scalar
                        function or an aggregate function. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1657 | 4 | 6.17.4 | The following forms of case expressions are supported: general
                case expressions, simple case
                expressions,
                coalesce expressions, and nullif expressions. Note that not all
                databases support the use of SQL case
                expressions. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1657.1 | 4 | 6.17.4 | general_case_expression::=
                        CASE when_clause {when_clause}* ELSE scalar_expression
                        END
                        when_clause::= WHEN conditional_expression THEN
                        scalar_expression | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1657.2 | 4 | 6.17.4 | simple_case_expression::=
                        CASE case_operand simple_when_clause
                        {simple_when_clause}*
                        ELSE scalar_expression
                        END
                        case_operand::= state_valued_path_expression |
                        type_discriminator
                        simple_when_clause::= WHEN scalar_expression THEN
                        scalar_expression | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1657.3 | 4 | 6.17.4 | coalesce_expression::= COALESCE(scalar_expression {,
                        scalar_expression}+) | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1657.4 | 4 | 6.17.4 | nullif_expression::= NULLIF(scalar_expression,
                        scalar_expression) | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1658 | 4 | 6.17.5 | An entity type expression can be used to restrict query
                polymorphism. The TYPE operator returns the
                exact type of the argument. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1659 | 4 | 6.17.5 | The syntax of an entity type expression is as
                follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1659.1 | 4 | 6.17.5 | type_discriminator.
                        TYPE(general_identification_variable |
                        single_valued_object_path_expression
                        | input_parameter ) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1659.2 | 4 | 6.17.5 | entity_type_literal. An entity_type_literal is
                        designated by the entity name. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1659.3 | 4 | 6.17.5 | input_parameter | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:803 | 4 | 7 | The GROUP BY construct enables the aggregation of
                values according to a set of properties. The
                HAVING construct enables conditions to be specified that further
                restrict the query result. Such
                conditions are restrictions upon the groups. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:804 | 4 | 7 | The syntax of the GROUP BY and HAVING clauses is as
                follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:805 | 4 | 7 | groupby_clause ::= GROUP BY
                        groupby_item[,groupby_item]* | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:806 | 4 | 7 | groupby_item ::= single_valued_path_expression
                        | identification_variable | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:807 | 4 | 7 | having_clause ::= HAVING
                        conditional_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:808 | 4 | 7 | If the query contains both a WHERE clause and a GROUP
                BY clause, the effect is that of first
                applying the where clause, and then forming the groups and
                filtering them to the HAVING clause. The
                HAVING clause causes those groups to be retained that satisfy
                the condition of the HAVING clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:810 | 4 | 7 | The requirements for the SELECT clause when GROUP BY is
                used follow those of SQL; namely, any
                property that appears in the SELECT clause (other than as an
                argument to an aggregate function) must
                also appear in the GROUP BY clause. In forming groups. null
                values are treated as the same for grouping
                purposes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1660 | 4 | 7 | Grouping by an entity is permitted. In this case, the entity
                must contain no serialized state fields or
                lob-valued state fields that are eagerly fetched. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1661 | 4 | 7 | Grouping by an entity that contains serialized state fields
                or lob-valued state fields is not portable, since the
                implementation is permitted to eagerly fetch
                fields or
                properties that have been specified as LAZY. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1662 | 4 | 7 | Grouping by embeddables is not supported. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1663 | 4 | 7 | The HAVING clause is used to filter over the groups, and can
                contain aggregate functions over
                attributes included in the groups and/or functions or other
                query language operators over the attributes
                that are used for grouping. It is not required that an aggregate
                function used in the HAVING clause also
                be used in the SELECT clause. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:809 | 4 | 7 | If there is no GROUP BY clause and the HAVING clause is
                used, the result is treated as a single
                group, and the select list can only consist of aggregate
                functions. The use of HAVING in the absence of
                GROUP BY is not required to be supported by an implementation of
                this specification. Portable
                applications should not rely on HAVING without the use of GROUP
                BY | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:811 | 4 | 8 | The SELECT clause denotes the query result. More than
                one value may be returned from the SELECT
                clause of a query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:372 | 4 | 8 | The SELECT clause may contain one or more of the following
                elements: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:372.2 | 4 | 8 | identification variable that ranges over an entity
                        abstract schema type | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:372.3 | 4 | 8 | a single-valued path expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:372.4 | 4 | 8 | an aggregate expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:372.5 | 4 | 8 | a constructor expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:814 | 4 | 8 | The SELECT clause has the following syntax: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:815 | 4 | 8 | select_clause ::= SELECT [DISTINCT] select_item
                        {, select_item}* | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:816 | 4 | 8 | select_expression ::=
                        {single_valued_path_expression | scalar_expression |
                        aggregate_select_expression | identification_variable |
                        OBJECT(identification variable) |
                        constructor_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:817 | 4 | 8 | constructor_expression ::= NEW
                        constructor_name(constructor_item
                        {,single_valued_path_expression | scalar_expression |
                        aggregate_expression |
                        identification_variable}*) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:814.1 | 4 | 8 | constructor_item ::=
                        single_valued_path_expression | scalar_expression |
                        aggregate_expression | identification_variable | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:818 | 4 | 8 | aggregate_expression ::= {AVG | MAX | MIN |
                        SUM}([DISTINCT]
                        state_valued_path_expression) | COUNT ([DISTINCT]
                        identification_variable |
                        state_valued_path_expression |
                        single_valued_object_path_expression) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:374 | 4 | 8 | The DISTINCT keyword is used to specify that duplicate
                values must be eliminated from the query
                result. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1664 | 4 | 8 | If DISTINCT is not specified, duplicate values are not
                eliminated. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1665 | 4 | 8 | The result of DISTINCT over embeddable objects or map
                entry results is undefined. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:373 | 4 | 8 | Standalone identification variables in the SELECT clause may
                optionally be qualified by the OBJECT
                operator. Note that the keyword OBJECT is not required. It is
                preferred that it be omitted for new
                queries. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1666 | 4 | 8 | A result_variable may be used to name a select_item in
                the query result | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1667 | 4 | 8 | The SELECT clause must not use the OBJECT operator to qualify
                path expressions. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:406 | 4 | 8.1 | The type of the query result specified by the SELECT clause of a
                query is an entity abstract schema
                type, a state field type, the result of a scalar expression, the
                result of an aggregate function, the
                result of a construction operation, or some sequence of these. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:408 | 4 | 8.1 | The result type of the SELECT clause is defined by the the
                result types of the select expressions
                contained
                in it. When multiple select expressions are used in the SELECT
                clause, the elements in this result
                correspond in order to the order of their specification in the
                SELECT clause and in type to the result
                types of each of the select expressions. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1668 | 4 | 8.1 | The type of the result of a select_expression is as
                follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:394 | 4 | 8.1 | The result type of an identification_variable is the
                        type of the entity object or embeddable
                        object to which the identification variable corresponds.
                        The type of an
                        identification_variable
                        that refers to an entity abstract schema type is the
                        type of the entity to which that
                        identification
                        variable corresponds or a subtype as determined by the
                        object/relational mapping. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:409 | 4 | 8.1 | The result type of a
                        single_valued_path_expression that is a
                        state_field_path_expression is the same type as the
                        corresponding state field of the entity
                        or
                        embeddable class. If the state field of the entity is a
                        primitive type, the result type is
                        the
                        corresponding
                        object type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:410 | 4 | 8.1 | The result type is a single_valued_path_expression that
                        is a
                        single_valued_object_path_expression is the type of the
                        entity object or embeddable object
                        to
                        which the
                        path expression corresponds. A
                        single_valued_object_path_expression that results in an
                        entity
                        object
                        will result in an entity of the type of the relationship
                        field or the subtype of the
                        relationship field
                        of the entity object as determined by the
                        object/relational mapping. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1668.1 | 4 | 8.1 | The result type of a single_valued_path_expression that
                        is an identification_variable to
                        which the KEY or VALUE function has been applied is
                        determined by the type of the map key
                        or value respectively, as defined by the above rules. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1668.2 | 4 | 8.1 | The result type of a single_valued_path_expression that
                        is an identification_variable to
                        which the ENTRY function has been applied is
                        java.util.Map.Entry, where the key
                        and value types of the map entry are determined by the
                        above rules as applied to the map key
                        and map value respectively. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1668.3 | 4 | 8.1 | The result type of a scalar_expression is the type of
                        the scalar value to which the
                        expression
                        evaluates. The result type of a numeric
                        scalar_expression is defined in section 4.8.6. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1668.4 | 4 | 8.1 | The result type of an entity_type_expression scalar
                        expression is the Java class to which
                        the
                        resulting abstract schema type corresponds. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1668.5 | 4 | 8.1 | The result type of aggregate_expression is defined in
                        section 4.8.5. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:395 | 4 | 8.1 | The result type of a constructor_expression is the type
                        of the class for which the
                        constructor
                        is
                        defined. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:819 | 4 | 8.2 | A constructor may be used in the SELECT list to return
                an instance of a Java
                class. The specified class is not required to be an entity or to
                be mapped to the database. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1669 | 4 | 8.2 | The constructor name must be fully qualified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:820 | 4 | 8.2 | If an entity class name is specified as the constructor
                name in the SELECT NEW clause, the
                resulting entity instances will be in either the new or the
                detached state, depending on whether a
                primary key is retrieved for the constructed object. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1670 | 4 | 8.2 | If a single_valued_path_expression or identification_variable
                that is an argument to the constructor
                references an entity, the resulting entity instance referenced
                by that single_valued_path_expression
                or identification_variable will be in the managed state. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:375 | 4 | 8.3 | If the result of an query corresponds to an association field or
                state field whose value is null, that
                null value is returned in the result of the query method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:376 | 4 | 8.3 | The IS NOT NULL construct can be used to eliminate the null from
                the result set of the query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:379 | 4 | 8.3 | Note, however, that state field types in terms of Java numeric
                primitive types cannot produce NULL
                values in the query results. An query that returns such a state
                field type as a result type must not
                return a null value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1671 | 4 | 8.4 | If the result of a query corresponds to an identification
                variable or state field whose value is an
                embeddable, the embeddable instance returned by the query will
                not be in the managed state (i.e., it
                will
                not be part of the state of any managed entity). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1672 | 4 | 8.5 | The following aggregate functions can be used in the SELECT
                clause of a query: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:380 | 4 | 8.5 | AVG | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:384 | 4 | 8.5 | COUNT | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:382 | 4 | 8.5 | MAX | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:381 | 4 | 8.5 | MIN | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:383 | 4 | 8.5 | SUM | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1672.1 | 4 | 8.5 | aggregate functions defined in the database.
                        The invocation of aggregate database
                        functions, including user defined functions, is
                        supported by means
                        of the FUNCTION operator | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1673 | 4 | 8.5 | For all aggregate functions except COUNT, the path expression
                that is the argument to the aggregate
                function must terminate in a state field. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:389 | 4 | 8.5 | The path expression argument to COUNT may terminate in a state
                field. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:390 | 4 | 8.5 | The path expression argument to COUNT may terminate in a
                association field. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:391 | 4 | 8.5 | The argument to COUNT may be an identification variable. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:821 | 4 | 8.5 | Arguments to the functions SUM and AVG must be
                numeric. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:822 | 4 | 8.5 | Arguments to the functions MAX and MIN must correspond
                to orderable state field types (i.e.,
                numeric types, string types, character types, or date type). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:823 | 4 | 8.5 | The Java type that is contained in the result of a
                query using an aggregate function is as
                follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:824 | 4 | 8.5 | COUNT returns long | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:825 | 4 | 8.5 | MAX, MIN return the type of the state field to
                        which they are applied | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:826 | 4 | 8.5 | AVG returns Double | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:827 | 4 | 8.5 | SUM returns Long when applied to state fields
                        of integral types (other than
                        BigInteger); Double when applied to state fields of
                        floating-point types; BigInteger when applied to state
                        fields of type BigInteger, and
                        BigDecimal
                        when applied to state fields of type BigDecimal. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:393 | 4 | 8.5 | Null values are eliminated before the aggregate function is
                applied regardless whether the keyword
                DISTINCT is specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:828 | 4 | 8.5 | If SUM, AVG, MAX, or MIN is used, and there are no
                values to which the aggreate function can be
                applied, the result of the aggregate function is NULL. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:829 | 4 | 8.5 | If COUNT is used, and there are no values to which
                COUNT can be applied, the result of the
                aggregate function is 0. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:392 | 4 | 8.5 | The argument to an aggregate function may be preceded by the
                keyword DISTINCT to specify that duplicate
                values are to be eliminated before the aggregate function is
                applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1674 | 4 | 8.5 | It is legal to specify DISTINCT with MAX or MIN, but it does not
                affect the result. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1675 | 4 | 8.5 | The use of DISTINCT with COUNT is not supported for arguments of
                embeddable types or map entry
                types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1676 | 4 | 8.6 | An operand that corresponds to a persistent state field is of
                the same type as that persistent state
                field. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1677 | 4 | 8.6 | The result of a case expression, coalesce expression, nullif
                expression, or arithmetic expression
                (+, -,*,/) is determined by applying the following rule to its
                operands. In the case of a general or
                simple case expression, these are the scalar expressions of the
                THEN and ELSE clauses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1677.1 | 4 | 8.6 | If there is an operand of type Double or
                        double, the result of the operation is of
                        type
                        Double; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1677.2 | 4 | 8.6 | otherwise, if there is an operand of type Float
                        or float, the result of the
                        operation
                        is of type Float; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1677.3 | 4 | 8.6 | otherwise, if there is an operand of type
                        BigDecimal, the result of the operation
                        is of
                        type BigDecimal; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1677.4 | 4 | 8.6 | otherwise, if there is an operand of type
                        BigInteger, the result of the operation
                        is
                        of type BigInteger, unless the operator is / (division),
                        in which case the numeric result
                        type
                        is not further defined; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1677.5 | 4 | 8.6 | otherwise, if there is an operand of type Long
                        or long, the result of the operation
                        is
                        of type Long, unless the operator is / (division), in
                        which case the numeric result type is
                        not
                        further defined; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1677.6 | 4 | 8.6 | otherwise, if there is an operand of integral
                        type, the result of the operation is
                        of
                        type Integer, unless the operator is / (division), in
                        which case the numeric result type is
                        not
                        further defined. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1678 | 4 | 8.6 | Users should note that the semantics of the SQL division
                operation are not standard across
                databases. In particular, when both operands are of integral
                types, the result of the division
                operation will be an integral type in some databases, and an
                non-integral type in others. Portable
                applications should not assume a particular result type. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1679 | 4 | 9 | orderby_clause ::= ORDER BY orderby_item {, orderby_item}*
                orderby_item ::= { state_field_path_expression |
                general_identification_variable | result_variable } | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:399 | 4 | 9 | An orderby_item MUST be one of the following | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:399.1 | 4 | 9 | A state_field_path_expression that evaluates to an
                        orderable state field of an entity or
                        embeddable class abstract schema type designated in the
                        SELECT clause | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:399.4 | 4 | 9 | a general_identification_variable | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:399.5 | 4 | 9 | a single_valued_object_path_expression | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:399.3 | 4 | 9 | A state_field_path_expression that evaluates to the same
                        state field of the same entity or
                        embeddable abstract schema type as a
                        state_field_path_expression in the SELECT clause | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:399.6 | 4 | 9 | A general_identification_variable that evaluates to the
                        same map field of the same entity or
                        embeddable abstract schema type as a
                        general_identification_variable in the SELECT clause | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:399.7 | 4 | 9 | A result_variable that refers to an orderable item in
                        the SELECT clause for which the same
                        result_variable has been specified. This may be the
                        result of an aggregate_expression, a
                        scalar_expression, or a state_field_path_expression in
                        the SELECT clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:400 | 4 | 9 | If more than one orderby_item is specified, the left-to-right
                sequence of the orderby_item elements
                determines the precedence, whereby the leftmost orderby_item has
                the highest precedence. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:401 | 4 | 9 | The keyword ASC specifies that ascending order is used.
                Ascending ordering is the default. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:402 | 4 | 9 | The keyword DESC specified that descending order is used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:403 | 4 | 9 | SQL rules for ordering of NULLS apply: that is, all null values
                must appear before all non-null values
                in the ordering or all null values must appear after all
                non-null values in the ordering, but it is not
                specified which. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:404 | 4 | 9 | The ordering of the query result is preserved in the result of
                the query method if the ORDER BY clause
                is used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:834 | 4 | 10 | Bulk update and delete operations apply to entities of
                a single entity class (together with its
                subclasses, if any).
                Only one entity abstract schema type may be specified in the
                FROM or UPDATE clause. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:836 | 4 | 10 | The syntax of these operations are as follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:837 | 4 | 10 | update_statement
                        ::=update_clause[where_clause] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:838 | 4 | 10 | update_clause ::=UPDATE entity_name [[AS]
                        identification_variable]
                        SET update_item {, update_item}* | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:839 | 4 | 10 | update_item
                        ::=[identification_variable.]{single_valued_embeddable_object_field.}*
                        {state_field | single_valued_object_field} = new_value | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:836.1 | 4 | 10 | new_value ::= scalar_expression |
                        simple_entity_expression | NULL | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:840 | 4 | 10 | delete_statement ::=delete_clause
                        [where_clause] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:841 | 4 | 10 | delete_clause ::= DELETE FROM entity_name [[AS]
                        identification_variable] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:835 | 4 | 10 | A delete operation only applies to entities of the
                specified class and its subclasses. It does
                not cascade to related entities. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1680 | 4 | 10 | The new_value specified for an update operation must be
                compatible in type with the field to which it
                is assigned. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1681 | 4 | 10 | Bulk update maps directly to a database update operation,
                bypassing optimistic locking checks. Portable
                applications must manually update the value of the version
                column, if desired, and/or manually validate
                the value of the version column. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1682 | 4 | 10 | The persistence context is not synchronized with the result of
                the bulk update or delete. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:416 | 4 | 11 | Comparison operations with a NULL value always yield an UNKNOWN
                value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:415 | 4 | 11 | Two NULL values are not considered to be equal, the comparison
                yield an UNKNOWN value. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:417 | 4 | 11 | Comparison operations with an UNKNOWN value always yield an
                UNKNOWN value. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:418 | 4 | 11 | Arithmetic operators with a NULL value always yield an UNKNOWN
                value. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:419 | 4 | 11 | Arithmetic operators with an UNKNOWN value always yield an
                UNKNOWN value. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1683 | 4 | 11 | The IS NULL operators convert a NULL state field into the
                respective TRUE or FALSE value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1684 | 4 | 11 | The IS NULL operators convert a NULL single-valued object field
                into the respective TRUE or FALSE | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:422 | 4 | 11 | The IS NOT NULL operators convert a NULL state field into the
                respective TRUE or FALSE value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:423 | 4 | 11 | The IS NOT NULL operators convert a NULL single-valued object
                field into the respective TRUE or FALSE
                value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:424 | 4 | 11 | Boolean operators use three valued logic: Table 1: Definition of
                the AND Operator | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:425 | 4 | 11 | Boolean operators use three valued logic: Table 2: Definition of
                the OR Operator | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:426 | 4 | 11 | Boolean operators use three valued logic: Table 3: Definition of
                the NOT Operator | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:430 | 4 | 12 | Only the values of like types are permitted to be compared. A
                type is like another type if they
                correspond
                to the same Java language type, or if one is a primitive Java
                language type and the other is the
                wrappered Java class type equivalent (e.g., int and Integer are
                like types in this sense).
                There is one exception to this rule: it is valid to compare
                numeric values for which the rules of
                numeric promotion apply. Conditional expressions attempting to
                compare non-like type values are
                disallowed except for
                this numeric case. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1685 | 4 | 12 | Note that the arithmetic operators and comparison operators are
                permitted to be applied to
                state fields and input parameters of the wrappered Java class
                equivalents to the primitive
                numeric Java types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:427 | 4 | 12 | Two entities of the same abstract schema type are equal if and
                only if they have the same primary key
                value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:428 | 4 | 12 | Only equality/inequality comparisons over enums are required to
                be supported. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1686 | 6 | 2.1.1 | For each managed class X in package p, a metamodel class X_ in
                package p is created. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1687 | 6 | 2.1.1 | The name of the metamodel class is derived from the name of the
                managed class by appending "_" to the
                name of the managed class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1688 | 6 | 2.1.1 | The metamodel class X_ must be annotated with the
                jakarta.persistence.StaticMetamodel annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1689 | 6 | 2.1.1 | If the class was generated, the jakarta.annotation.Generated
                annotation should be used to annotate the
                class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1690 | 6 | 2.1.1 | If class X extends another class S, where S is the most derived
                managed class (i.e., entity or
                mapped superclass) extended by X, then class X_ must extend
                class S_, where S_ is the metamodel
                class created for S. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1691 | 6 | 2.1.1 | For every persistent non-collection-valued attribute y declared
                by class X, where the type of y
                is Y, the metamodel class must contain a declaration as follows:
                public static volatile SingularAttribute<X, Y> y; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1692 | 6 | 2.1.1 | For every persistent collection-valued attribute z declared by
                class X, where the element type
                of z is Z, the metamodel class must contain a declaration as
                follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1692.1 | 6 | 2.1.1 | if the collection type of z is java.util.Collection,
                        then
                        public static volatile CollectionAttribute<X, Z>
                        z; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1692.2 | 6 | 2.1.1 | if the collection type of z is java.util.Set, then
                        public static volatile SetAttribute<X, Z> z; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1692.3 | 6 | 2.1.1 | if the collection type of z is java.util.List, then
                        public static volatile ListAttribute<X, Z> z; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1692.4 | 6 | 2.1.1 | if the collection type of z is java.util.Map, then
                        public static volatile MapAttribute<X, K, Z> z;
                        where K is the type of the key of the map in class X | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1693 | 6 | 2.1.1 | Import statements must be included for the needed
                jakarta.persistence.metamodel types as
                appropriate | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1693.1 | 6 | 2.1.1 | jakarta.persistence.metamodel.SingularAttribute | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1693.2 | 6 | 2.1.1 | jakarta.persistence.metamodel.CollectionAttribute | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1693.3 | 6 | 2.1.1 | jakarta.persistence.metamodel.SetAttribute | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1693.4 | 6 | 2.1.1 | jakarta.persistence.metamodel.ListAttribute | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1693.5 | 6 | 2.1.1 | jakarta.persistence.metamodel.MapAttribute | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1693.6 | 6 | 2.1.1 | all classes X, Y, Z, and K. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1694 | 6 | 2.1.1 | Implementations of this specification are not required to
                support the use of non-canonical
                metamodel classes. Applications that use non-canonical metamodel
                classes will not be portable. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1695 | 6 | 2.2 | When the entity manager factory for a persistence unit is
                created, it is the responsibility of the
                persistence
                provider to initialize the state of the metamodel classes of the
                persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1696 | 6 | 2.2 | Persistence providers must support the use of canonical
                metamodel classes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1697 | 6 | 2.2 | Persistence providers may, but are not required to,
                support the use of non-canonical metamodel
                classes. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1698 | 6 | 4 | Strings may be used as an alternative to metamodel
                objects, whereby joins and navigation are
                specified by use of strings that correspond to attribute names. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1700 | 6 | 5 | A criteria query is constructed through the creation and
                modification of a jakarta.persistence.
                criteria.CriteriaQuery object. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1701 | 6 | 5 | The CriteriaBuilder interface is used to construct
                CriteriaQuery, CriteriaUpdate, and CriteriaDelete
                objects. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1702 | 6 | 5 | The CriteriaBuilder implementation is accessed through the
                getCriteriaBuilder method of the
                EntityManager or EntityManagerFactory interface. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1703 | 6 | 5.1 | A CriteriaQuery object is created by means of one of the
                createQuery methods or the createTupleQuery
                method of the CriteriaBuilder interface. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1704 | 6 | 5.1 | A CriteriaQuery object is typed according to its expected result
                type when the CriteriaQuery object is
                created. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1705 | 6 | 5.1 | A TypedQuery instance created from the CriteriaQuery object by
                means of the EntityManager createQuery
                method will result in instances of this type when the resulting
                query is executed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1706 | 6 | 5.1 | The effect of the createTupleQuery method is semantically
                equivalent to invoking the createQuery method
                with the Tuple.class argument. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1707 | 6 | 5.1 | The CriteriaQuery
                <Object>
                createQuery() method supports both the case where the select or
                multiselect method specifies only a
                single selection item and where the multiselect method specifies
                multiple selection items. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1708 | 6 | 5.1 | If only a single item is specified, an instance of type Object
                will be returned for each result of the
                query execution. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1709 | 6 | 5.1 | If multiple selection items are specified, an instance of type
                Object[] will be instantiated and
                returned for each result of the execution | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1711 | 6 | 5.2 | A CriteriaQuery object may have more than one root. The addition
                of a query root has the semantic effect
                of creating a
                cartesian product between the entity type referenced by the
                added root and those of the other roots. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1712 | 6 | 5.3 | Joins can be chained, | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1713 | 6 | 5.3 | By default, the join method defines an inner join. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1714 | 6 | 5.3 | Outer joins are defined by specifying a JoinType
                argument. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1715 | 6 | 5.3 | Only left outer joins and left outer fetch joins are
                required to be supported | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1716 | 6 | 5.3 | Applications that make use of right outer joins or right outer
                fetch joins will not be portable. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1717 | 6 | 5.3 | On-conditions can be specified for joins. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1718 | 6 | 5.4 | An association or attribute referenced by the fetch method must
                be referenced from an entity or
                embeddable that is returned as the result of the query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1720 | 6 | 5.4 | The fetch method must not be used in a subquery. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1721 | 6 | 5.4 | Multiple levels of fetch joins are not required to be supported
                by an implementation of this
                specification. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1722 | 6 | 5.5 | A Path instance can be | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1722.1 | 6 | 5.5 | a Root instance | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1722.2 | 6 | 5.5 | a Join instance | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1722.3 | 6 | 5.5 | a Path instance that has been derived from
                        another Path instance by means of the
                        get
                        navigation method | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1722.4 | 6 | 5.5 | a Path instance derived from a map-valued
                        association by use of the key or value
                        method | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1722.5 | 6 | 5.5 | a Path instance derived from a element
                        collection by use of the key or value
                        method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1723 | 6 | 5.5 | if the value of a non-terminal Path
                instance is null, the path is considered to have no value, and
                does not participate in the determination
                of
                the query result. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1724 | 6 | 5.5 | The get method is used for path navigation. The argument to the
                get method is specified by the
                corresponding
                SingularAttribute or collection-valued attribute
                (CollectionAttribute,
                SetAttribute, ListAttribute, or MapAttribute) of the
                corresponding metamodel class. Attribute names
                serve this role for string-based queries. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1725 | 6 | 5.6 | The result of a query can be restricted by specifying one or
                more predicate conditions. Restriction
                predicates
                are applied to the CriteriaQuery object by means of the where
                method. Invocation of the
                where method results in the modification of the CriteriaQuery
                object with the specified restriction(
                s). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1726 | 6 | 5.6 | The argument to the where method can be either an Expression
                <Boolean>
                instance or zero or more Predicate instances. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1727 | 6 | 5.6 | A predicate can be either simple or compound. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1728 | 6 | 5.6 | A simple predicate is created by invoking | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1728.1 | 6 | 5.6 | one of the conditional methods of the
                        CriteriaBuilder interface | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1728.2 | 6 | 5.6 | isNull method of the Expression interface | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1728.3 | 6 | 5.6 | isNotNull method of the Expression interface | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1728.4 | 6 | 5.6 | in method of the Expression interface | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1729 | 6 | 5.6 | Compound predicates are constructed by means of the and, or, and
                not methods of the CriteriaBuilder
                interface. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1730 | 6 | 5.6 | The restrictions upon the types to which conditional
                operations are permitted to be applied are
                the same
                as the respective operators of the Java Persistence query
                language as described in subsections 4.6.7
                through 4.6.17. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1731 | 6 | 5.6 | The same null value semantics as described in section
                4.11 | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1732 | 6 | 5.6 | the subsections of section 4.6 apply | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1733 | 6 | 5.6 | The equality and comparison semantics described in
                section 4.12 | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1734 | 6 | 5.7 | Downcasting by means of the treat method is supported | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1734.1 | 6 | 5.7 | in joins | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1734.2 | 6 | 5.7 | in the construction of where conditions | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1735 | 6 | 5.8 | An Expression or one of its subtypes can be used in the
                construction of the query’s | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1735.1 | 6 | 5.8 | select list | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1735.2 | 6 | 5.8 | in the construction of where method
                        conditions | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1735.3 | 6 | 5.8 | in the construction of having method
                        conditions | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1736 | 6 | 5.8 | Path predicates are expressions. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1737 | 6 | 5.8 | boolean predicates are expressions. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1738 | 6 | 5.8 | The type method can only be applied to a path
                expression. Its result denotes the type navigated
                to by the path. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1739 | 6 | 5.8 | The index method can be applied to a ListJoin object
                that corresponds to a list for which an
                order column has been specified. Its result denotes the position
                of the item in the list. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1740 | 6 | 5.8 | The aggregation methods avg, max, min, sum, count can
                only be used in the construction of the
                select list | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1741 | 6 | 5.8 | The aggregation methods avg, max, min, sum, count can
                only be used in having method
                conditions. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1742 | 6 | 5.8 | The size method can be applied to a path expression that
                corresponds to an association collection.
                Its result denotes the number of elements in the association
                collection. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1744 | 6 | 5.8 | Both simple and general case expressions are
                supported. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1745 | 6 | 5.8.1 | For non-numerical operands, the implementation must return the
                most specific common superclass of the
                types of the operands used to form the result. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1746 | 6 | 5.8.1 | In the case of the two-argument sum, prod, diff, quot, coalesce,
                and nullif methods, and the
                In, Case, SimpleCase, and Coalesce builder methods, the runtime
                result types will differ from
                the Expression type when the latter is Number. The following
                rules must be observed by the
                implementation
                when materializing the results of numeric expressions involving
                these methods. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1746.1 | 6 | 5.8.1 | If there is an operand of type Double, the
                        result of the operation is of type
                        Double; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1746.2 | 6 | 5.8.1 | otherwise, if there is an operand of type
                        Float, the result of the operation is of
                        type
                        Float; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1746.3 | 6 | 5.8.1 | otherwise, if there is an operand of type
                        BigDecimal, the result of the operation
                        is of
                        type BigDecimal; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1746.4 | 6 | 5.8.1 | otherwise, if there is an operand of type
                        BigInteger, the result of the operation
                        is of
                        type BigInteger, unless the method is quot, in which
                        case the numeric result type is not
                        further
                        defined; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1746.5 | 6 | 5.8.1 | otherwise, if there is an operand of type Long,
                        the result of the operation is of
                        type
                        Long, unless the method is quot, in which case the
                        numeric result type is not further
                        defined; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1746.6 | 6 | 5.8.1 | otherwise, if there is an operand of integral
                        type, the result of the operation is
                        of
                        type Integer, unless the method is quot, in which case
                        the numeric result type is not
                        further
                        defined. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1747 | 6 | 5.8.1 | In particular, when both operands are of integral types, the
                result of the division
                operation will be an integral type in some databases, and an
                non-integral type in others. Portable
                applications should not assume a particular result type. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1748 | 6 | 5.9 | An Expression literal instance is obtained by passing a value to
                the literal method of the
                CriteriaBuilder
                interface. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1749 | 6 | 5.9 | An Expression instance representing a null is created by the
                nullLiteral method of the CriteriaBuilder
                interface. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1750 | 6 | 5.10 | A ParameterExpression instance is an expression that corresponds
                to a parameter whose value
                will be supplied before the query is executed. Parameter
                expressions can only be used in the
                construction
                of conditional predicates. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1751 | 6 | 5.11 | The select list of a query is specified by use of the select or
                multiselect methods of the CriteriaQuery
                interface. The arguments to the select and multiselect methods
                are Selection
                instances. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1752 | 6 | 5.11 | The select method takes a single Selection argument, which can
                be either an Expression
                instance or a CompoundSelection instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1753 | 6 | 5.11 | The type of the Selection item must be assignable to the defined
                CriteriaQuery result type, | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1754 | 6 | 5.11 | The construct, tuple and array methods of the CriteriaBuilder
                interface are used to aggregate multiple
                selection items into a CompoundSelection instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1755 | 6 | 5.11 | The multiselect method also supports the specification and
                aggregation of multiple selection
                items. When the multiselect method is used, the aggregation of
                the selection items is determined
                by the result type of the CriteriaQuery object | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1756 | 6 | 5.11 | A Selection instance passed to the construct method can be one
                of the following: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1756.1 | 6 | 5.11 | An Expression instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1756.2 | 6 | 5.11 | A Selection instance obtained as the result of
                        the invocation of the
                        CriteriaBuilder
                        construct method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1757 | 6 | 5.11 | A Selection instance passed to the tuple method can be one of
                the following: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1757.1 | 6 | 5.11 | An Expression instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1757.2 | 6 | 5.11 | A Selection instance obtained as the result of
                        the invocation of the
                        CriteriaBuilder
                        construct method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1758 | 6 | 5.11 | A Selection instance passed to the array method can be one of
                the following: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1758.1 | 6 | 5.11 | An Expression instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1758.2 | 6 | 5.11 | A Selection instance obtained as the result of
                        the invocation of the
                        CriteriaBuilder
                        construct method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1759 | 6 | 5.11 | A Selection instance passed to the multiselect method can be one
                of the following: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1759.1 | 6 | 5.11 | An Expression instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1759.2 | 6 | 5.11 | A Selection instance obtained as the result of
                        the invocation of the
                        CriteriaBuilder
                        construct method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1760 | 6 | 5.11 | The distinct method of the CriteriaQuery interface is
                used to specify that duplicate values
                must be eliminated from the query result. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1761 | 6 | 5.11 | If the distinct method is not used or distinct(
                false) is invoked on the criteria query object, duplicate values
                are not eliminated. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1762 | 6 | 5.11 | When distinct(true) is used, and the select items include
                embeddable objects or map entry results, the
                elimination of duplicates is undefined. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1763 | 6 | 5.11.1 | The alias method of the Selection interface can be used to
                assign an alias to a selection item. The
                alias may then later be used to extract the corresponding item
                from the query result when the query is
                executed. The alias method assigns the given alias to the
                Selection item. Once assigned, the alias
                cannot be changed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1764 | 6 | 5.12 | Both correlated and non-correlated subqueries can be
                used in restriction predicates. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1765 | 6 | 5.12 | A subquery is constructed through the creation and
                modification of a Subquery object. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1766 | 6 | 5.12 | A Subquery instance can be passed as an argument to
                the | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1766.1 | 6 | 5.12 | all | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1766.2 | 6 | 5.12 | any | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1766.3 | 6 | 5.12 | some | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1767 | 6 | 5.12 | A Subquery instance can be passed to the
                CriteriaBuilder exists method to create a conditional
                predicate. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1769 | 6 | 5.12 | Note that joins involving the derived subquery root do not
                affect the join conditions of the containing
                query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1770 | 6 | 5.13 | The groupBy method of the CriteriaQuery interface is used to
                define a partitioning of the query results
                into groups. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1771 | 6 | 5.13 | The having method of the CriteriaQuery interface can be used to
                filter over the groups. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1772 | 6 | 5.13 | The arguments to the groupBy method are Expression
                instances. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1773 | 6 | 5.13 | When the groupBy method is used, each selection item that is not
                the result of applying an aggregate
                method must correspond to a path expression that is used for
                defining the grouping. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1774 | 6 | 5.14 | An Order instance is created by means of the asc and desc
                methods of the CriteriaBuilder interface. An
                argument to either of these methods must be one of the
                following: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1774.1 | 6 | 5.14 | Any Expression instance that corresponds to an orderable
                        state field of an entity or
                        embeddable class abstract schema type that is specified
                        as an argument to the select or
                        multiselect method or that is an argument to a tuple or
                        array constructor that is passed as
                        an argument to the select method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1774.2 | 6 | 5.14 | Any Expression instance that corresponds to the same
                        state field of the same entity or
                        embeddable abstract schema type as an Expression
                        instance that is specified as an argument
                        to the select or multiselect method or that is an
                        argument to a tuple or array constructor
                        that is passed as an argument to the select method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1774.3 | 6 | 5.14 | An Expression instance that is specified as an argument
                        to the select or multiselect
                        method or that is an argument to a tuple or array
                        constructor that is passed as an argument
                        to
                        the select method or that is semantically equivalent to
                        such an Expression instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1775 | 6 | 5.14 | If more than one Order instance is specified, the order in which
                they appear in the argument list of the
                orderBy method determines the precedence, whereby the first item
                has highest precedence. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1776 | 6 | 5.14 | SQL rules for the ordering of null values apply, | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1777 | 6 | 5.15 | A bulk update query is constructed through the creation and
                modification of a
                jakarta.persistence.criteria.CriteriaUpdate object. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1778 | 6 | 5.15 | A CriteriaUpdate object is typed according to the entity type
                that is the target of the update. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1779 | 6 | 5.15 | A CriteriaUpdate object has a single root, the entity that is
                being updated. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1780 | 6 | 5.15 | A bulk delete query is constructed through the creation and
                modification of a
                jakarta.persistence.criteria.CriteriaDelete object. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1781 | 6 | 5.15 | A CriteriaDelete object is typed according to the entity type
                that is the target of the delete. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1782 | 6 | 5.15 | A CriteriaDelete object has a single root, the entity that is
                being deleted. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1783 | 6 | 5.15 | Like bulk update and delete operations made through the Java
                Persistence query language, criteria API
                bulk update and delete operations map directly to database
                operations, bypassing any optimistic locking
                checks. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1784 | 6 | 5.15 | The persistence context is not synchronized with the result of
                the bulk update or delete. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1786 | 6 | 7 | The Criteria API provides the option of specifying the attribute
                references used in joins and navigation
                by attribute names used as arguments to the various methods. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1786.1 | 6 | 7 | join | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1786.2 | 6 | 7 | fetch | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1786.3 | 6 | 7 | get | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1787 | 6 | 8 | A CriteriaQuery object may be modified, either before or after Query or
                TypedQuery objects have been created and
                executed from it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1788 | 6 | 8 | A CriteriaUpdate object may be modified, either before or after Query or
                TypedQuery objects have been created and
                executed from it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1789 | 6 | 8 | A CriteriaDelete object may be modified, either before or after Query or
                TypedQuery objects have been created and
                executed from it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1790 | 6 | 8 | modification may entail replacement of the where predicate or
                the select list. Modifications may thus
                result in the same query object “base” being reused for several
                query instances. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1792 | 6 | 9 | A criteria query is executed by passing the CriteriaQuery object
                to the createQuery method of the
                EntityManager interface to create a TypedQuery object, which can
                then be passed to one of the query
                execution methods of the TypedQuery interface. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1793 | 6 | 9 | A criteria query is executed by passing the CriteriaUpdate
                object to the createQuery method of the
                EntityManager interface to create a an executable
                Query object, which can then be passed to one of the query
                execution methods of the Query interface. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1794 | 6 | 9 | A criteria query is executed by passing the CriteriaDelete
                object to the createQuery method of the
                EntityManager interface to create a Query object, which can then
                be passed to one of the query
                execution methods of the Query interface. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1795 | 6 | 9 | A CriteriaQuery object may be further modified after an
                executable query object has been created from it. The
                modification of the CriteriaQuery object does not have any
                impact on the already created executable query
                object. If the modified CriteriaQuery object is passed to the
                createQuery method, the persistence
                provider must insure that a new executable query object is
                created and returned that reflects the semantics of
                the changed query definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1796 | 6 | 9 | A CriteriaUpdate object may be further modified after an
                executable query object has been created from it. The
                modification of the CriteriaUpdate object does not have any
                impact on the already created executable query
                object. If the modified CriteriaQuery object is passed to the
                createQuery method, the persistence
                provider must insure that a new executable query object is
                created and returned that reflects the semantics of
                the changed query definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1797 | 6 | 9 | A CriteriaDelete object may be further modified after an
                executable query object has been created from it. The
                modification of the CriteriaDelete object does not have any
                impact on the already created executable query
                object. If the modified CriteriaDelete object is passed to the
                createQuery method, the persistence
                provider must insure that a new executable query object is
                created and returned that reflects the semantics of
                the changed query definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1798 | 6 | 9 | CriteriaQuery, CriteriaUpdate, and CriteriaDelete
                objects must be serializable. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1799 | 6 | 9 | CriteriaQuery, CriteriaUpdate, and CriteriaDelete
                objects are not required to be interoperable
                across vendors. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:842 | 7 | 1 | Both container-managed entity managers and
                application-managed entity managers and their
                persistence contexts are required to be supported in JavaEE web
                containers and EJB containers. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:843 | 7 | 1 | In Java SE environments and in Java EE application
                client containers, only application-managed
                entity managers are required to be supported. NOTE the use of
                JTA is not required to be supported in
                application client containers. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:844 | 7 | 2 | When container-managed entity managers are used (in
                Java EE environments), the application does
                not interact with the entity manager factory. The entity
                managers are obtained directly through
                dependency
                injection or from JNDI | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1800 | 7 | 2 | An entity manager must not be shared among multiple concurrently
                executing threads, as the entity
                manager and persistence context are not required to be
                threadsafe. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1801 | 7 | 2.1 | A container-managed entity manager is obtained by the
                application through dependency injection
                or through direct lookup of the entity manager in the JNDI
                namespace. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:845 | 7 | 2.1 | The PersistenceContext annotation is used for entity
                manager injection. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:846 | 7 | 2.1 | The unitName element may optionally be specified to
                designate the persistence unit whose
                entity manager factory is used by the container. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:847 | 7 | 2.1 | The type element specifies whether a transaction-scoped
                or extended persistence context is to
                be used. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1802 | 7 | 2.1 | The synchronization element specifies whether the
                persistence context is always automatically
                joined to the current transaction (the default) or is not joined
                to the current transaction unless
                the joinTransaction method is invoked by the application. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1803 | 7 | 2.2 | An application-managed entity manager is obtained by
                the application from an entity manager
                factory.
                The EntityManagerFactory API used to obtain an
                application-managed entity manager is the
                same independent of whether this API is used in Java EE or Java
                SE environments. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:848 | 7 | 3 | The EntityManagerFactory interface is used by the
                application to create an application-managed
                entity manager. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:849 | 7 | 3 | More than one entity manager factory instance may be
                available simultaneously in the JVM. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:850 | 7 | 3.1 | Within a JavaEE environment, an entity manager factory
                may be injected using the
                PersistenceUnit annotation or obtained through JNDI lookup. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1804 | 7 | 3.1 | The unitName element may optionally be specified to
                designate the persistence unit whose entity
                manager factory is used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:851 | 7 | 3.2 | Outside the JavaEE container environment, the
                jakarta.persistence.Persistence class is the
                bootstrap class that provides access to an entity manager
                factory. The application creates an entity
                manager factory by called the createEntityManagerFactory method
                of the jakarta.persistence.Persistence
                class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:852 | 7 | 4 | The EntityManagerFactory interface is used by the
                application to obtain an application-managed
                entity manager. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:853 | 7 | 4 | When the application has finished using the entity
                manager factory, and/or at application
                shutdown, the application should close the entity manager
                factory. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1805 | 7 | 4 | Once an entity manager factory
                has been closed, all its entity managers are considered to be in
                the closed state. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:854 | 7 | 4 | Any number of vendor-specific properties may be
                included in the map passed to
                createEntityManager method. Properties that are not recognized
                by a vendor must be ignored. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2507 | 7 | 4 | Note that the policies of the installation environment may restrict some information from being made available through the EntityManagerFactory getProperties method | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2503 | 7 | 4 | Vendors should use vendor namespaces for properties (e.g., com.acme.persistence.logging).
                Entries that make use of the namespace jakarta.persistence and its subnamespaces must not be
                used for vendor-specific information. The namespace jakarta.persistence is reserved for use by this specification. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:858 | 7 | 5 | A container-managed entity manager must be a JTA entity
                manager. JTA entity managers are only
                specified for use in Java EE containers | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:859 | 7 | 5 | An application-managed entity manager may be either a
                JTA entity manager or a resource-local
                entity manager. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1806 | 7 | 4 | Entries that make use of the namespace
                jakarta.persistence and its subnamespaces must not be
                used for vendor-specific information. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:855 | 7 | 5 | An entity manager is defined to be of a given
                transaction type - JTA or resource-local - at the
                time its underlying entity manager factory is configured and
                created. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:856 | 7 | 5 | Both JTA entity managers and resource-local entity
                managers are required to be supported in
                JavaEE web and EJB containers. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:857 | 7 | 5 | In general, in JavaSE environments, only resource-local
                entity managers are supported. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1807 | 7 | 5 | A resource-local entity manager transaction is mapped to a
                resource transaction over the resource by the
                persistence provider. Resource-local entity managers may use
                server resources to connect to the database
                and are unaware of the presence of JTA transactions that may or
                may not be active. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1808 | 7 | 5 | A resource-local entity manager transaction is mapped to a
                resource transaction over the resource by the
                persistence provider. Resource-local entity managers may use
                local resources to connect to the database
                and are unaware of the presence of JTA transactions that may or
                may not be active. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:860 | 7 | 5.3 | The EntityTransaction interface is used to control
                resource transactions on resource-local
                entity
                managers. The EntityManager.getTransaction() method returns an
                instance of the EntityTransaction
                interface. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1809 | 7 | 5.3 | When a resource-local entity manager is used, and the
                persistence provider runtime throws an exception
                defined to cause transaction rollback, the persistence provider
                must mark the transaction for rollback. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1810 | 7 | 5.3 | If the EntityTransaction.commit operation fails, the persistence
                provider must roll back the
                transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:861 | 7 | 6 | When a container-managed entity manager is used, the
                lifecycle of the persistence context is
                always managed automatically, transparently to the application,
                and the persistence context is
                propagated with the JTA transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1811 | 7 | 6 | A container-managed persistence context may be defined to have
                either a lifetime that is scoped to a
                single
                transaction or an extended lifetime that spans multiple
                transactions, depending on the
                PersistenceContextType
                that is specified when its entity manager is created. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1812 | 7 | 6 | The lifetime of the persistence context is declared using the | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1812.1 | 7 | 6 | PersistenceContext annotation | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1812.2 | 7 | 6 | persistence-context-ref deployment descriptor
                        element | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1813 | 7 | 6 | By default, a transaction-scoped persistence context is
                used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1814 | 7 | 6.1 | By default, a container-managed persistence context is
                of type
                SynchronizationType.SYNCHRONIZED. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1815 | 7 | 6.1 | Such a persistence context is automatically joined to
                the current JTA transaction, and
                updates made to the persistence context are propagated to the
                underlying resource manager. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1816 | 7 | 6.1 | A container-managed persistence context may be
                specified to be of type Synchronization-
                Type.UNSYNCHRONIZED. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1817 | 7 | 6.1 | A persistence context of type
                SynchronizationType.UNSYNCHRONIZED is not enlisted in any JTA
                transaction unless explicitly joined to that transaction by the
                application. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1818 | 7 | 6.1 | The persistence context remains joined to the
                transaction until the transaction commits or
                rolls back. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1819 | 7 | 6.1 | After the transaction commits or rolls back, the
                persistence context will not be joined to any
                subsequent transaction unless the joinTransaction method is
                invoked in the scope of that subsequent
                transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1820 | 7 | 6.1 | A persistence context of type
                SynchronizationType.UNSYNCHRONIZED must not be flushed to the
                database unless it is joined to a transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1821 | 7 | 6.1 | The application's use of queries with pessimistic
                locks, bulk update or delete queries, etc.
                result in the provider throwing the
                TransactionRequiredException. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1822 | 7 | 6.1 | After the persistence context has been joined to the
                JTA transaction, these operations are
                again allowed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1823 | 7 | 6.1 | The application is permitted to invoke the persist,
                merge, remove, and refresh entity lifecycle
                operations on an entity manager of type
                SynchronizationType.UNSYNCHRONIZED independent of whether the
                persistence context is joined to the current transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1824 | 7 | 6.1 | After the persistence context has been joined to a
                transaction, changes in a persistence
                context can be flushed to the database either explicitly by the
                application or by the provider. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1825 | 7 | 6.1 | If the flush method is not explicitly invoked, the
                persistence provider may defer flushing
                until commit time depending on the operations invoked and the
                flush mode setting in effect. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1826 | 7 | 6.1 | If a persistence context of type
                SynchronizationType.UNSYNCHRONIZED has not been joined to the
                current JTA transaction, rollback of the JTA transaction will
                have no effect upon the persistence
                context. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1827 | 7 | 6.1 | If an extended persistence context of type
                SynchronizationType.UNSYNCHRONIZED has been joined to the JTA
                transaction, transaction rollback will cause the persistence
                context | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1827.1 | 7 | 6.1 | to be cleared | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1827.2 | 7 | 6.1 | and all pre-existing managed instances to
                        become detached. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1827.3 | 7 | 6.1 | and all removed instances to become detached. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1828 | 7 | 6.1 | When a JTA transaction exists, a persistence context of
                type SynchronizationType.UNSYNCHRONIZED
                is propagated with that transaction regardless of whether the
                persistence context has been joined to
                that transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1829 | 7 | 6.2 | The application can obtain a container-managed entity
                manager with transaction-scoped
                persistence context by | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1829.1 | 7 | 6.2 | injection | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1829.2 | 7 | 6.2 | direct lookup in the JNDI namespace | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1830 | 7 | 6.2 | The persistence context type for the entity manager is
                defaulted or defined as
                PersistenceContextType.TRANSACTION. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:862 | 7 | 6.2 | A new persistence context begins when the
                container-managed entity manager is invoked in the
                scope of an active JTA transaction, and there is no current
                persistence context already associated with
                the JTA transaction. The persistence context is created and then
                associated with the JTA transaction | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:863 | 7 | 6.2 | The persistence context ends when the associated JTA
                transaction commits or rolls back, and all
                entities that were managed by the EntityManager become detached.
                Note that this applies to a
                transaction-scoped persistence context of type
                SynchronizationType.UNSYNCHRONIZED that has not been
                joined to the transaction as well. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:864 | 7 | 6.2 | If the entity manager is invoked outside the scope of a
                transaction, any entities loaded from
                the database will immediately become detached at the end of the
                method call. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:865 | 7 | 6.3 | A container-managed extended persistence context can
                only be initiated within the scope of a
                stateful session bean. It exists from the point at which the
                stateful session bean that declares a
                dependency on an
                entity manager of type PersistenceContextType.EXTENDED is
                created, and is said to be bound to the
                stateful session bean. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:866 | 7 | 6.3 | The dependency on the extended persistence context is
                declared by means of the
                PersistenceContext annotation or persistence-context-ref
                deployment descriptor element | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:867 | 7 | 6.3 | A container-managed extended persistence context can
                only be initiated within the scope of a
                stateful session bean. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1831 | 7 | 6.3 | The persistence context is closed by the container when
                the | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1831.1 | 7 | 6.3 | @Remove method of the stateful session bean
                        completes | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1831.2 | 7 | 6.3 | the stateful session bean instance is otherwise
                        destroyed | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:868 | 7 | 6.3.1 | If a stateful session bean instantiates a stateful
                session bean (executing in the same EJB
                container instance) which also has such an extended persistence
                context with the same synchronization
                type, the
                extended persistence context of the first stateful session bean
                is inherited by the second stateful
                session
                bean and bound to it, and this rule recursively
                applies—independently of whether transactions are active
                or not at the point of the creation of the stateful session
                beans. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1832 | 7 | 6.3.1 | If the stateful session beans differ in declared
                synchronization type, the EJBException is
                thrown by the container. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:869 | 7 | 6.3.1 | If the persistence context has been inherited by any
                stateful session beans, the container does
                not close the persistence context until all such stateful
                session beans have been removed or otherwise
                destroyed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1833 | 7 | 6.4 | a single persistence context may correspond to one or
                more JTA entity manager
                instances (all associated with the same entity manager factory) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1834 | 7 | 6.4 | Entity manager instances obtained from different entity
                manager factories never share the same
                persistence context. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:870 | 7 | 6.4 | The persistence context is propagated across the entity
                manager instances as the JTA
                transaction is propagated. Propagation of persistence contexts
                only applies within a local environment.
                Persistence contexts are not propagated to remote tiers. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1835 | 7 | 6.4 | A persistence context of type
                SynchronizationType.UNSYNCHRONIZED is propagated with the JTA
                transaction regardless of whether it has been joined to the
                transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:871 | 7 | 6.4.1 | If a component is called and there is no JTA
                transaction or the JTA transaction is not
                propagated, the persistence context is not propagated. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:872 | 7 | 6.4.1 | If an entity manager is invoked from within the
                component: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:873 | 7 | 6.4.1 | Invocation of an entity manager defined with
                        PersistenceContextType.TRANSACTION
                        will
                        result in use of a new persistence context. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:874 | 7 | 6.4.1 | Invocation of an entity manager defined with
                        the PersistenceContextType.EXTENDED
                        will
                        result in the use of the existing extended persistence
                        context bound to that component. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:875 | 7 | 6.4.1 | If the entity manager is invoked within a JTA
                        transaction the persistence context
                        will
                        be associated to the JTA transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:876 | 7 | 6.4.1 | If a component is called and the JTA transaction is
                propagated into that component: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:877 | 7 | 6.4.1 | If the component is a stateful session bean to
                        which an extended persistence
                        context
                        has been bound and there is a different persistence
                        context bound to the JTA transaction, an
                        EJBException is thrown by the container. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:876.1 | 7 | 6.4.1 | If there is a persistence context of type
                        SynchronizationType.UNSYNCHRONIZED
                        associated with the JTA transaction and the target
                        component specifies a persistence context
                        of
                        type SynchronizationType.SYNCHRONIZED, the IllegalStateException
                        is thrown by the container. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:878 | 7 | 6.4.1 | Otherwise, if there is a persistence context
                        associated to the JTA transaction,
                        that
                        persistence context is propagated and used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:879 | 7 | 7 | When an application-managed entity manager is used, the
                application interacts directly with the
                persistence provider's entity manager factory to manage the
                entity manager lifecycle and to obtain and
                destroy persistence contexts.
                All such application-managed persistence contexts are extended
                in scope, and can span multiple
                transactions. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:880 | 7 | 7 | The EntityManagerFactory.createEntityManager method and
                the EntityManager
                close and isOpen methods are used to manage the lifecycle of an
                application-managed entity manager
                and its associated persistence context. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:885 | 7 | 7 | The extended persistence context exists from the point
                at which the entity manager has been
                created using EntityManagerFactory.createEntityManager until the
                entity manager is closed by means of
                EntityManager.close. An extended persistence context obtained
                from the application-managed entity
                manager is a stand-alone persistence context—it is not
                propagated with the transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1836 | 7 | 7 | When a JTA application-managed entity manager is used,
                an application-managed persistence
                context
                may be specified to be of type
                SynchronizationType.UNSYNCHRONIZED. A persistence context
                of type SynchronizationType.UNSYNCHRONIZED is not enlisted in
                any JTA transaction
                unless explicitly joined to that transaction by the application. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1837 | 7 | 7 | A persistence context of type
                SynchronizationType.UNSYNCHRONIZED is enlisted in a JTA
                transaction and registered for subsequent transaction
                notifications against that transaction by the
                invocation of the EntityManager join Transaction method. The
                persistence context remains joined to the
                transaction until the transaction
                commits or rolls back. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1838 | 7 | 7 | After the transaction commits or rolls back, the
                persistence context will not be joined to any
                subsequent transaction unless the joinTransaction method is
                invoked in the scope of that subsequent
                transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:886 | 7 | 7 | When a JTA application-managed entity manager is used,
                if the entity manager is created outside
                the scope of the current JTA transaction, it is the
                responsibility of the application to join the entity
                manager to the transaction (if desired) by calling
                EntityManager.joinTransaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1839 | 7 | 7 | If the entity manager is created outside the scope of a
                JTA transaction, it is not joined to
                the transaction unless EntityManager.joinTransaction is called. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:881 | 7 | 7 | The EntityManager.close() closes the entity manager to
                release its persistence context and any
                other resources. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:882 | 7 | 7 | After calling close, the application must not invoke
                any further methods on the EntityManager
                instance except for getTransaction and IsOpen or the
                IllegalStateException will be thrown. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:883 | 7 | 7 | If the close method is invoked when a transaction is
                active, the persistence context remains
                managed until the transaction completes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:884 | 7 | 7 | The EntityManager.isOpen method indicates whether the
                entity manager is open. The isOpen
                method returns true until the entity manager has been closed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:887 | 7 | 8 | Requirements on the Container | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:888 | 7 | 8.1 | Application Managed Persistence Contexts | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:889 | 7 | 8.2 | Container Managed Persistence Contexts | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1840 | 7 | 8.1 | When application-managed persistence contexts are used,
                the container must instantiate the
                entity manager factory and expose it to the application via
                JNDI. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1841 | 7 | 8.1 | However, the container is required to support
                third-party persistence
                providers, and in this case the container must use the
                PersistenceProvider.createContainerEntityManagerFactory method
                to create the
                entity manager factory and the EntityManagerFactory.close method
                to destroy the entity
                manager factory prior to shutdown (if it has not been previously
                closed by the application). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1842 | 7 | 8.2 | The container is responsible for managing the lifecycle
                of container-managed persistence
                contexts, for injecting EntityManager references into | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1842.1 | 7 | 8.2 | web components | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1842.2 | 7 | 8.2 | session bean | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1842.3 | 7 | 8.2 | message-driven bean components | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1842.4 | 7 | 8.2 | and for making EntityManager references
                        available to direct lookups in JNDI. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1843 | 7 | 8.2 | When operating with a third-party persistence provider,
                the container uses the contracts to
                create and destroy container-managed persistence contexts. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1844 | 7 | 8.2 | It is undefined whether a new entity manager instance
                is created for every persistence context,
                or whether entity manager instances are sometimes reused. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1845 | 7 | 8.2 | Exactly how the container maintains the association
                between persistence context and JTA
                transaction is not defined. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1846 | 7 | 8.2 | If a persistence context is already associated with a
                JTA transaction, the container uses that
                persistence context for subsequent invocations within the scope
                of that transaction | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:890 | 7 | 9 | Runtime Contracts between the Container and Persistence Provider | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:891 | 7 | 9.1 | Container Responsibilities | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:892 | 7 | 9.2 | Provider Responsibilities | true | 
 | true | technology | removed | true | 
| PERSISTENCE:SPEC:1847 | 7 | 9.1 | For the management of a transaction-scoped persistence context,
                if there is no EntityManager already
                associated with the JTA transaction: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1847.1 | 7 | 9.1 | The container creates a new entity manager by calling
                        EntityManagerFactory.createEntityManager
                        when the first invocation of an entity manager with
                        PersistenceContextType.TRANSACTION
                        occurs
                        within the scope of a business method executing in the
                        JTA transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1847.2 | 7 | 9.1 | After the JTA transaction has completed (either by
                        transaction commit or rollback), the
                        container closes the entity manager by calling
                        EntityManager.close. Note that the JTA
                        transaction may rollback in a background thread (e.g., as a result of transaction timeout), in
                        which case the container should arrange for the entity manager to be closed but the Entity-
                        Manager.close method should not be concurrently invoked while the application is in an
                        EntityManager invocation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1848 | 7 | 9.1 | The container must throw the TransactionRequiredException if a
                transaction-scoped persistence context is
                used and | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1848.1 | 7 | 9.1 | and the EntityManager persist method is invoked
                        when no transaction is active. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1848.2 | 7 | 9.1 | and the EntityManager remove method is invoked
                        when no transaction is active. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1848.3 | 7 | 9.1 | and the EntityManager merge method is invoked
                        when no transaction is active. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1848.4 | 7 | 9.1 | and the EntityManager refresh method is invoked
                        when no transaction is active. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1849 | 7 | 9.1 | For stateful session beans with extended persistence
                contexts: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1849.1 | 7 | 9.1 | The container creates an entity manager by calling
                        EntityManagerFactory.createEntityManager
                        when
                        a stateful session bean is created that declares a
                        dependency on an entity manager with
                        PersistenceContextType.EXTENDED. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1849.2 | 7 | 9.1 | The container closes the entity manager by
                        calling EntityManager.close after the
                        stateful session bean and all other stateful session
                        beans that have inherited the same
                        persistence context as the entity manager have been
                        removed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1849.3 | 7 | 9.1 | When a business method of the stateful session
                        bean is invoked, if the stateful
                        session
                        bean uses container managed transaction demarcation, and
                        the entity manager is not already
                        associated with the current JTA transaction, the
                        container associates the entity manager
                        with
                        the current JTA transaction and, if the persistence
                        context is of type
                        SynchronizationType.SYNCHRONIZED, the container calls
                        EntityManager. joinTransaction. If
                        there
                        is a different persistence context already associated
                        with the JTA transaction, the
                        container
                        throws the EJBException. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1849.4 | 7 | 9.1 | When a business method of the stateful session
                        bean is invoked, if the stateful
                        session
                        bean uses bean managed transaction demarcation and a
                        UserTransaction is begun within the
                        method,
                        the container associates the persistence context with
                        the JTA transaction and, if the
                        persistence context is of type
                        SynchronizationType.SYNCHRONIZED, the container calls
                        EntityManager.joinTransaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1850 | 7 | 9.1 | The container must throw the IllegalStateException if
                the application calls EntityManager.
                close on a container-managed entity manager. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1851 | 7 | 9.1 | When the container creates an entity manager, it may pass a map
                of properties to the persistence
                provider by using the
                EntityManagerFactory.createEntityManager(Map map) method. If
                properties have been
                specified in the PersistenceContext annotation or the
                persistence-context-ref deployment descriptor
                element, this method must be used and the map must include the
                specified properties. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1852 | 7 | 9.1 | If the application invokes EntityManager.unwrap(Class
                <T>
                cls), and the container cannot
                satisfy the request, the container must delegate the unwrap
                invocation to the provider’s entity manager
                instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1853 | 7 | 9.2 | When EntityManagerFactory.createEntityManager is
                invoked, the provider must create and return a
                new entity manager. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1854 | 7 | 9.2 | If a JTA transaction is active and the persistence
                context is of type
                SynchronizationType.SYNCHRONIZED, the provider must register for
                synchronization notifications against
                the JTA transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1855 | 7 | 9.2 | When EntityManager.joinTransaction is invoked, the
                provider must register for synchronization
                notifications against the current JTA transaction if a previous
                joinTransaction invocation for the
                transaction has not already been processed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1856 | 7 | 9.2 | When the JTA transaction commits, if the persistence
                context is of type SynchronizationType.
                SYNCHRONIZED or has otherwise been joined to the transaction,
                the provider must flush all modified
                entity state to the database. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1857 | 7 | 9.2 | When the JTA transaction rolls back, the provider must
                detach all managed entities if the
                persistence context is of type SynchronizationType.SYNCHRONIZED
                or has otherwise been joined to the
                transaction. Note that the JTA transaction may rollback in a background
                thread (e.g., as a result of transaction timeout), in which case the provider should arrange for
                the managed entities to be detached from the persistence context but not concurrently while the
                application is in an EntityManager invocation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1858 | 7 | 9.2 | When the provider throws an exception defined to cause
                transaction rollback, the provider must
                mark the transaction for rollback if the persistence context is
                of type SynchronizationType.SYNCHRONIZED
                or has otherwise been joined to the transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1859 | 7 | 9.2 | When EntityManager.close is invoked, the provider
                should release all resources that it may have
                allocated after any outstanding transactions involving the
                entity manager have completed. If the entity
                manager was already in a closed state, the provider must throw
                the IllegalStateException. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1860 | 7 | 9.2 | When EntityManager.clear is invoked, the provider must
                detach all managed entities. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:893 | 8 | 2 | Within Java EE environments, an EJB-JAR, WAR, EAR, or
                application client JAR can define a
                persistence unit. Any number of persistence units may be defined
                within these scopes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:894 | 8 | 2 | A persistence unit may be packaged: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:895 | 8 | 2 | within one or more jar files contained within a
                        WAR | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:896 | 8 | 2 | one or more jar files contained within an EAR | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:897 | 8 | 2 | as a set of classes within an EJB-JAR file | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:898 | 8 | 2 | a set of classes in the WAR classes directory | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:899 | 8 | 2 | as a combination of these | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:900 | 8 | 2 | A persistence unit is defined by a persistence.xml
                file. The jar file or directory whose
                META-INF directory contains the persistence.xml file is termed
                the root of the persistence unit.
                In Java EE environments, the root of a persistence unit may be
                one of the following: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:901 | 8 | 2 | an EJB-JAR file | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:902 | 8 | 2 | the WEB-INF classes directory of a WAR file
                        [the root of the persistence unit - in
                        this
                        case - is the WEB-INF/classes directory; the
                        persistence.xml file is therefore contained in
                        the
                        WEB-INF/classes/META-INF directory. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:903 | 8 | 2 | a jar file in the WEB-INF/lib directory of a
                        WAR file | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:904 | 8 | 2 | a jar file in the root of the EAR | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:905 | 8 | 2 | a jar file in the EAR library directory | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:906 | 8 | 2 | an application client jar file | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:907 | 8 | 2 | It is not required that an EJB-JAR or WAR file
                containing a persistence unit be packaged in an
                EAR unless the persistence unit contains persistence classes in
                addition to those contained in the
                EJB-JAR or WAR. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:908 | 8 | 2 | A persistence unit must have a name. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:909 | 8 | 2 | Only one persistence unit of any given name may be
                defined: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:910 | 8 | 2 | within a single EJB-JAR file | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:911 | 8 | 2 | within a single WAR file | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:912 | 8 | 2 | within a single application client jar | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:913 | 8 | 2 | within an EAR | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:914 | 8 | 2 | within an EAR in the lib directory | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:915 | 8 | 2 | The persistence.xml file may be used to designate more
                than one persistence unit within the
                same scope. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:916 | 8 | 2 | All persistence classes defined at the level of the
                Java EE EAR must be accessible to other
                J2EE components in the application—i.e. loaded by the
                application classloader—such
                that if the same entity class is referenced by two different
                Java EE components (which may be using
                different persistence units), the referenced class is the same
                identifical class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:917 | 8 | 2 | In Java SE environments, the metadata mapping files,
                jar files, and classes described in the
                following sections can be used.
                To insure portability of a Java SE application, it is necessary
                to explicitly list the managed
                persistence classes that are included in the persistence unit
                using the class element of the
                persistence.xml file. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:918 | 8 | 2.1 | A persistence.xml file defines a persistence unit. The
                persistence.xml file is located in the
                META-INF directory of the root of the persistence unit. It may
                be used to specify managed persistence
                classes included in the persistence unit, object/relational
                mapping information for those classes,
                scripts
                for use in schema generation and the bulk loading of data, and
                other configuration information for the persistence unit and for
                the entity manager(s) and entity
                manager
                factory for the persistence unit. This information may be
                defined by containment or by reference,
                as described below. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:919 | 8 | 2.1 | The object/relational mapping information can take the
                form of: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:920 | 8 | 2.1 | annotations on the managed persistence classes
                        included in the persistence unit | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:919.1 | 8 | 2.1 | an orm.xml file contained in the META-INF
                        directory of the root of the persistence
                        unit | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:921 | 8 | 2.1 | one or more XML files contained in the root of
                        the persistence unit | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:922 | 8 | 2.1 | one or more XML files on the classpath and
                        referenced from the persistence.xml | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:923 | 8 | 2.1 | a combination of above | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:924 | 8 | 2.1 | The managed persistence classes may either be: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:925 | 8 | 2.1 | contained within the root of the persistence
                        archive | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:926 | 8 | 2.1 | specified by reference—i.e., by naming the
                        classes, class archives, or XML mapping
                        files
                        (which in turn reference classes) that are accessible on
                        the application classpath | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:927 | 8 | 2.1 | specified by some combination of these means. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:928 | 8 | 2.1 | The persistence element consists of one or more
                persistence-unit elements. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:929 | 8 | 2.1 | The persistence-unit element consists of the name and
                transaction-type attributes and the
                following sub-elements: description, provider, jta-data-source,
                non-jta-data-source, mapping-file,
                jar-file, class, exclude-unlisted-classes, shared-cache-mode,
                validation-mode, and properties. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:930 | 8 | 2.1 | The name attribute is required; the other attributes
                and elements are optional. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:932 | 8 | 2.1.1 | The name attribute defines the name for the persistence
                unit. This name is used to identify the
                persistence unit referred to by the PersistenceContext and
                PersistenceUnit annotations and
                the programmatic API for creating EntityManagers and
                EntityManager Factories. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1861 | 8 | 2.1.1 | The name attribute defines the name for the persistence
                unit. This name is used to identify the
                persistence unit referred to by the PersistenceContext and
                PersistenceUnit annotations and
                the programmatic API for creating an entity manager factory. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:936 | 8 | 2.1.2 | The transaction-type attribute is used to specify
                whether the entity managers provided by the
                entity
                manager factory for the persistence unit must be JTA entity
                managers or resource-local entity managers. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:937 | 8 | 2.1.2 | The value of this element is JTA or RESOURCE_LOCAL. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1862 | 8 | 2.1.2 | A transaction-type of JTA assumes that a JTA data
                source will be provided—either as specified
                by the jta-data-source element or provided by the container. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1863 | 8 | 2.1.2 | in Java EE environments, a transaction-type of
                RESOURCE_LOCAL assumes that a non-JTA datasource
                will be provided. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:938 | 8 | 2.1.2 | In a Java EE environment, if this element is not
                specified, the default is JTA. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1864 | 8 | 2.1.2 | In a Java SE environment, if this element is not
                specified,the default is RESOURCE_LOCAL. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:931 | 8 | 2.1.3 | The description element provides optional descriptive
                information about the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:933 | 8 | 2.1.4 | The provider element specifies the name of the
                persistence provider's
                jakarta.persistence.spi.PersistenceProvider class. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:934 | 8 | 2.1.4 | The provider element is optional, but should be
                specified if the application is dependent upon
                a particular persistence provider being used. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:939 | 8 | 2.1.5 | In Java EE environments, the jta-data-source and
                non-jta-data-source elements is used to
                specify the JNDI name of the JTA and/or non-JTA data source to
                be used by the persistence
                provider. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:940 | 8 | 2.1.5 | If neither is specified, the deployer must specify a
                JTA data source at deployment or the default JTA
                data source must be provided by the container and a JTA
                EntityManagerFactory will be created to
                correspond to it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:941 | 8 | 2.1.5 | These elements name the data source in the local
                environment; the format of these names and the
                ability to specify the names are product specific. | true | 
 | true | technology | removed | false | 
| PERSISTENCE:SPEC:942 | 8 | 2.1.5 | In Java SE environments, these elements may be used or
                the data source information may be
                specified by other means - depending upon the requirements of
                the provider. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:943 | 8 | 2.1.6 | The following classes must be implicitly or explicitly
                denoted as managed persistence classes
                to be included within a persistence unit:
                entity classes; embeddadble classes; mapped superclasses;
                converter classes | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:944 | 8 | 2.1.6 | The set of managed persistence classes that are managed
                by a persistence unit is defined by
                using one or more of the following: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:948 | 8 | 2.1.6 | Annotated managed persistence classes contained
                        in the root of the persistence unit
                        (unless the exclude-unlisted-classes element is
                        specified) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:945 | 8 | 2.1.6 | One or more object/relational mapping XML
                        files | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:946 | 8 | 2.1.6 | One or more jar files that will be searched for
                        classes | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:947 | 8 | 2.1.6 | An explicit list of classes | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:964 | 8 | 2.1.6 | The set of entities managed by the persistence unit is
                the union of these sources, with the
                mapping metadata annotations (or annotation defaults) for any
                given class being overridden by the XML
                mapping information file if there are both annotations as well
                as XML mappings for that class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1865 | 8 | 2.1.6 | The minimum portable level of overriding is at the level of the
                persistent field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:966 | 8 | 2.1.6 | The classes and/or jars that are named as part of a
                persistence unit must be on the classpath;
                referencing them from the persistence.xml file does not cause
                them to be placed on the classpath. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:967 | 8 | 2.1.6 | All classes must be on the classpath to ensure that
                entity managers from different persistence
                units that map the same class will be accessing the same
                identical class. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:961 | 8 | 2.1.6.1 | All classes contained in the root of the persistence
                unit are searched for annotated managed
                persistence classes—classes with the Entity, Embeddable,
                MappedSuperclass, or Converter annotation—and
                any mapping
                metadata annotations found on these classes will be processed,
                or they will be mapped using the mapping
                annotation defaults | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:962 | 8 | 2.1.6.1 | If it is not intended that the annotated persistence
                classes contained in the root of the
                persistence unit be included in the persistence unit, the
                exclude-unlisted-classes element must be
                specified as true. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:963 | 8 | 2.1.6.1 | The exclude-unlisted-classes element is not intended
                for use in Java SE environments. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:949 | 8 | 2.1.6.2 | A object/relational mapping XML file named orm.xml | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:950 | 8 | 2.1.6.2 | may be specified in the META-INF directory in
                        the root of the persistence unit | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:951 | 8 | 2.1.6.2 | or in the META-INF directory of any jar file
                        referenced by the persistence.xml | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:952 | 8 | 2.1.6.2 | Alternatively, or in addition, one or more
                        mapping files may be referenced by the
                        mapping-file elements of the persistence-unit element | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:949.1 | 8 | 2.1.6.2 | These mapping files may be present anywhere on
                        the class path. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:953 | 8 | 2.1.6.2 | If a mapping file is specified, the classes and mapping
                information specified in the mapping
                file will be used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:954 | 8 | 2.1.6.2 | If multiple mapping files are specified (possibly
                including an orm.xml file), the resulting
                mappings are obtained by combining the mappings from all the
                files | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:955 | 8 | 2.1.6.2 | The result is undefined if multiple mapping files
                (including any orm.xml file) referenced
                within a single persistence unit contain overlapping mapping
                information for any given class. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:956 | 8 | 2.1.6.2 | The object/relational mapping information contained in
                any mapping file referenced within the
                persistence unit must be disjoint at the class-level from
                object/relational mapping information
                contained in any other such mapping file. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:957 | 8 | 2.1.6.3 | One or more jar files may be specified using the
                jar-file elements instead of, or in addition
                to the mapping files specified in the mapping-files elements.
                If specified, these JAR files will be searched for managed
                persistence classes and any mapping
                metadata annotations found on them will be processed or they
                will be mapped using the mapping annotation
                defaults defined by this specification.
                Such JAR files are specified relative to the directory or jar
                file that contains the root of the
                persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:958 | 8 | 2.1.6.4 | A list of named managed persistence entity classes,
                embeddable classes, mapped
                superclasses, and converter classes may be specified instead of,
                or in addition to, the
                JAR files and mapping files. Any mapping metadata annotations
                found on these classes will be processed,
                or they will be mapped using the mapping annotation defaults. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:959 | 8 | 2.1.6.4 | The class element is used to list a managed persistence
                class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:960 | 8 | 2.1.6.4 | A list of all named managed persistence classes must be
                specified in Java SE environments to
                insure portability. Portable
                JavaSE applications should not rely on the other mechanisms
                described here to specify the managed
                persistence classes of a
                persistence unit. Persistence providers may require that the set
                of entity classes and classes that
                are to be managed
                must be fully enumerated in each of the persistence.xml files in
                Java SE environments. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1866 | 8 | 2.1.7 | The shared-cache-mode element determines whether
                second-level caching is in effect for the
                persistence
                unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1867 | 8 | 2.1.8 | The validation-mode element determines whether
                automatic lifecycle event time validation is in
                effect. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:968 | 8 | 2.1.9 | The properties element is used to specify both standard
                and vendor-specific properties and
                hints
                that apply to the persistence unit and its entity manager
                factory configuration. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1868 | 8 | 2.1.9 | The following properties and hints defined by this
                specification are intended for use in both
                Java EE and Java SE environments: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1868.1 | 8 | 2.1.9 | jakarta.persistence.lock.timeout — value in
                        milliseconds for pessimistic lock
                        timeout. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1868.2 | 8 | 2.1.9 | jakarta.persistence.query.timeout — value in
                        milliseconds for query timeout. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1868.3 | 8 | 2.1.9 | jakarta.persistence.validation.group.pre-persist—
                        groups that are targeted
                        for validation upon the pre-persist event (overrides the
                        default behavior). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1868.4 | 8 | 2.1.9 | jakarta.persistence.validation.group.pre-update—
                        groups that are targeted
                        for validation upon the pre-update event (overrides the
                        default behavior). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1868.5 | 8 | 2.1.9 | jakarta.persistence.validation.group.pre-remove—
                        groups that are targeted
                        for validation upon the pre-remove event (overrides the
                        default behavior). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1869 | 8 | 2.1.9 | The following properties defined by this specification
                are intended for use in Java SE
                environments. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1869.1 | 8 | 2.1.9 | jakarta.persistence.jdbc.driver — fully qualified
                        name of the driver class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1869.2 | 8 | 2.1.9 | jakarta.persistence.jdbc.url — driver-specific
                        URL | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1869.3 | 8 | 2.1.9 | jakarta.persistence.jdbc.user — username used by
                        database connection | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1869.4 | 8 | 2.1.9 | jakarta.persistence.jdbc.password — password for
                        database connection validation | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2452 | 8 | 2.1.9 | Scripts for use in schema generation may be specified
                using the
                jakarta.persistence.schema-generation.create-script-source and
                jakarta.persistence.schema-generation.drop-script-source
                properties. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2453 | 8 | 2.1.9 | A script to specify SQL for the bulk loading of data
                may be specified by the jakarta.persistence.sql-load-script-source
                property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1870 | 8 | 2.1.9 | These properties are intended for use in both Java EE
                and Java SE environments: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1870.1 | 8 | 2.1.9 | jakarta.persistence.schema-generation.create-script-source
                        — name of a script packaged as part of the persistence
                        application or a string corresponding to a file URL
                        string that designates a script. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1870.2 | 8 | 2.1.9 | jakarta.persistence.schema-generation.drop-script-source —
                        name of a script packaged as part of the persistence
                        application or a string corresponding to a file URL
                        string that designates a script. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1870.3 | 8 | 2.1.9 | jakarta.persistence.sql-load-script-source —name
                        of a script packaged as part of the persistence unit or
                        a string corresponding to a file URL string that
                        designates a script. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2481 | 8 | 2.1.9 | When scripts are packaged as part of the persistence
                application, these properties must specify locations
                relative to the root of the persistence unit. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2482 | 8 | 2.1.9 | When scripts are provided externally (or when schema
                generation
                is to occur into script files, as described below), strings
                corresponding to file URLs must be specified. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2483 | 8 | 2.1.9 | In Java EE environments, such file URL specifications
                must be absolute paths (not relative). | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2484 | 8 | 2.1.9 | In
                Java EE environments, all source and target file locations must
                be accessible to the application server
                deploying the persistence unit. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2485 | 8 | 2.1.9 | schema generation actions may also be specified by
                means of the following properties
                used in the persistence.xml file. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2485.1 | 8 | 2.1.9 | The
                        jakarta.persistence.schema-generation.database.action
                        property
                        specifies the action to be taken by the persistence
                        provider with regard to the database artifacts.
                        The values for this property are none, create,
                        drop-and-create, drop. If this property
                        is not specified, it is assumed that schema generation
                        is not needed or will be initiated by
                        other means, and, by default, no schema generation
                        actions will be taken on the database. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2485.2 | 8 | 2.1.9 | The
                        jakarta.persistence.schema-generation.scripts.action
                        property specifies
                        which scripts are to be generated by the persistence
                        provider. The values for this property
                        are none, create, drop-and-create, drop. Scripts will
                        only be generated if script targets
                        are specified. If this property is not specified, it is
                        assumed that script generation is not
                        needed or will be initiated by other means, and, by
                        default, no scripts will be generated. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2485.3 | 8 | 2.1.9 | The
                        jakarta.persistence.schema-generation.create-source
                        property specifies
                        whether the creation of database artifacts is to occur
                        on the basis of the object/relational
                        mapping metadata, DDL script, or a combination of the
                        two. The values for this property are
                        metadata, script, metadata-then-script,
                        script-then-metadata. If this
                        property is not specified, and a script is specified by
                        the jakarta.persistence.
                        schema-generation.create-script-source property, the
                        script (only)
                        will be used for schema generation; otherwise if this
                        property is not specified, schema generation
                        will occur on the basis of the object/relational mapping
                        metadata (only). The metadata-
                        then-script and script-then-metadata values specify that
                        a combination
                        of metadata and script is to be used and the order in
                        which this use is to occur. If either of these
                        values is specified and the resulting database actions
                        are not disjoint, the results are undefined
                        and schema generation may fail. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2485.4 | 8 | 2.1.9 | The
                        jakarta.persistence.schema-generation.drop-source property
                        specifies
                        whether the dropping of database artifacts is to occur
                        on the basis of the object/relational mapping
                        metadata, DDL script, or a combination of the two. The
                        values for this property are metadata, script,
                        metadata-then-script, script-then-metadata. If this
                        property is not specified, and a script is specified by
                        the jakarta.persistence.
                        schema-generation.drop-script-source property, the
                        script (only) will
                        be used for the dropping of database artifacts;
                        otherwise if this property is not specified, the
                        dropping of database artifacts will occur on the basis
                        of the object/relational mapping metadata
                        (only). The metadata-then-script and
                        script-then-metadata values specify
                        that a combination of metadata and script is to be used
                        and the order in which this use is to
                        occur. If either of these values is specified and the
                        resulting database actions are not disjoint,
                        the results are undefined and the dropping of database
                        artifacts may fail. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2485.5 | 8 | 2.1.9 | jakarta.persistence.schema-generation.scripts.drop-target
                        If scripts are to be generated, the target locations for
                        the writing of these scripts must be specified.
                        These targets are specified as strings corresponding to
                        file URLs. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:969 | 8 | 2.1.9 | If a persistence provider does not recognize properties
                (other than those defined by this
                specification), the provider must ignore it. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:969 | 8 | 2.1.9 | If a persistence provider does not recognize properties
                (other than those defined by this
                specification), the provider must ignore it. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:970 | 8 | 2.2 | An EJB-JAR, WAR, application client jar or EAR can
                define a persistence unit. When referencing
                a persistence unit using the unitName annotation element or
                persistence-unit-name deployment descriptor
                element, the visibility scope of the persistence unit is
                determined by its point of definition: | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:971 | 8 | 2.2 | A persistence unit that is defined at the level
                        of an EJB-JAR, WAR, or application
                        client jar
                        is
                        scoped to that EJB-JAR, WAR, or application jar
                        respectively and is visible to the
                        components
                        defined in that jar or war. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:973 | 8 | 2.2 | A persistence unit is defined at the level of
                        the EAR is generally visible to all
                        components of
                        the application. However, if a persistence unit of the
                        same name is defined by an EJB-JAR,
                        WAR
                        or
                        application jar file within the EAR, the persistence
                        unit of that name defined at the EAR
                        level
                        will not be visible to the components defined by that
                        EJB-JAR, WAR, or application jar file
                        unless the
                        persistence unit reference uses the persistence unit
                        name # syntax to specify a path name to
                        disambiguate the reference. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:970.1 | 8 | 2.2 | When the # syntax is used, the path name is
                        relative
                        to the referencing application component jar file. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:970.2 | 8 | 2.2 | The # syntax may be used with both the unitName
                        annotation element or
                        persistence-unit-name deployment descriptor element to
                        reference a persistence unit defined
                        at
                        EAR level. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:974 | 9 | 1 | Each persistence unit deployed into a Java EE container
                consists of a single persistence.xml
                file, any number of mapping files and any number of classes. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:975 | 9 | 1 | At deployment time the container is responsible for
                scanning locations specified in 8.2 and
                discovering the persistence.xml files and processing them. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:976 | 9 | 1 | When the container finds a persistence.xml file, it
                must processes the persistence unit
                definitions that it contains. The container must validate the
                persistence.xml file against the
                persistence_2_1.xsd, persistence_2_0.xsd or persistence_1_0.xsd
                schema in accordance with the version
                specified by the persistence.xml file and report any validation
                errors. Provider or data source
                information not specified in the persistence.xml file must be
                provided at deployment time or
                defaulted by the container. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:977 | 9 | 1 | The container may optionally add any container-specific
                properties to be passed to the
                provider when creating the entity manager factory for the
                persistence unit. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1871 | 9 | 1 | Once the container has read the persistence metadata,
                it determines the jakarta.persistence.
                spi.PersistenceProvider implementation class for each deployed
                named persistence
                unit. The container then creates an instance of the
                PersistenceProvider implementation class for
                each deployed named persistence unit and invokes the
                createContainerEntityManagerFactory
                method on that instance. | false | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1872 | 9 | 1 | The container must implement the PersistenceUnitInfo interface
                and pass the metadata—in the form of a
                PersistenceUnitInfo instance—to the persistence provider as part
                of this call. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1873 | 9 | 1 | If a Bean Validation provider exists in the container
                environment and the validation- mode NONE is not
                specified, a ValidatorFactory instance must be made available by
                the container. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1874 | 9 | 1 | The container is responsible for passing this ValidatorFactory
                instance via the map that is passed as an
                argument to the createContainerEntityManagerFactory call. The
                map key used must be the standard property
                name jakarta.persistence.validation.factory. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1875 | 9 | 1 | If CDI is enabled, a BeanManager instance must be made
                available by the container. The container is responsible for
                passing this BeanManager instance via the
                map that is passed as an argument to the
                createContainerEntityManagerFactory call. The map key used must
                be the standard property name jakarta.persistence.bean.manager. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1876 | 9 | 1 | The EntityManagerFactory instance obtained as a result will be
                used by the container to create
                container-managed entity managers. Only one EntityManagerFactory
                is permitted to be created for each
                deployed persistence unit configuration. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1877 | 9 | 1 | Any number of EntityManager instances may be created
                from a given factory. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1878 | 9 | 1 | In a Java EE environment, the classes of the
                persistence unit should not be loaded by the
                application class loader or any of its parent class loaders
                until after the entity manager factory for
                the persistence unit has been created. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:978 | 9 | 1 | When a persistence unit is redeployed, the container
                should call the close method on the
                previous
                EntityManagerFactory instance and call the
                createContainerEntityManagerFactory
                method again, with the required PersistenceUnitInfo metadata, to
                achieve the redeployment. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1060 | 9 | 1.4 | Columns in the overrides apply to the current primary
                table for the class that contains the
                annotation. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1061 | 9 | 1.10 | The AttributeOverride annotation may be used on an
                entity that extends a mapped superclass or
                on an embeddable class. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:992 | 9 | 2 | BootStrapping in Java SE Environments | true | 
 | true | technology | removed | true | 
| PERSISTENCE:SPEC:1879 | 9 | 2 | In Java SE environments, the
                Persistence.createEntityManagerFactory method is used by the
                application to
                create an entity manager factory | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1880 | 9 | 2 | The provider supplies the provider configuration file by
                creating a text file named
                jakarta.persistence.spi.PersistenceProvider and placing it in the
                META-INF/services directory of one of
                its JAR files. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1881 | 9 | 2 | The contents of the file should be the name of the provider
                implementation class of the
                jakarta.persistence.spi.PersistenceProvider interface | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1882 | 9 | 2 | The Persistence bootstrap class must locate all of the
                persistence providers using the
                PersistenceProviderResolver mechanism and call
                createEntityManagerFactory on them in turn until an
                appropriate backing provider returns an EntityManagerFactory
                instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1883 | 9 | 2 | A provider may deem itself as appropriate for the persistence
                unit if any of the following are true: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1883.1 | 9 | 2 | Its implementation class has been specified in the
                        provider element for that persistence
                        unit in
                        the persistence.xml file and has not been overridden by
                        a different
                        jakarta.persistence.provider
                        property value included in the Map passed to the
                        createEntity ManagerFactory method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1883.2 | 9 | 2 | The jakarta.persistence.provider property was included in
                        the Map passed to
                        createEntityManagerFactory and the value of the property
                        is the provider’s implementation
                        class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1883.3 | 9 | 2 | No provider was specified for the persistence unit in
                        either the persistence.xml or the
                        property
                        map. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1884 | 9 | 2 | If a provider does not qualify as the provider for the named
                persistence unit it must return null when
                createEntityManagerFactory is invoked on it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2474 | 9 | 2.1 | In Java SE environments, the Persistence.generateSchema
                method may be used by the application to cause schema generation
                to occur as a separate phase from entity manager factory
                creation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2475 | 9 | 2.1 | In this case, the Persistence bootstrap class must
                locate all of the persistence providers using the
                PersistenceProviderResolver mechanism and call generateSchema on
                them in turn until an appropriate backing provider returns true. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2476 | 9 | 2.1 | A provider may deem
                itself as appropriate for the persistence unit if any of the
                following are true: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2477 | 9 | 2.1 | Its implementation class has been specified in
                        the provider element for that persistence unit in the
                        persistence.xml file and has not been overridden by a
                        different jakarta.persistence.
                        provider property value included in the Map passed to
                        the generateSchema method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2478 | 9 | 2.1 | The jakarta.persistence.provider property was
                        included in the Map passed to generateSchema and the
                        value of the property is the provider's implementation
                        class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2479 | 9 | 2.1 | No provider was specified for the persistence
                        unit in either the persistence.xml or the property map. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2480 | 9 | 2.1 | If a provider does not qualify as the provider for the
                named persistence unit, it must return false when generateSchema
                is invoked on it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1885 | 9 | 3 | The PersistenceProviderResolver instance is responsible for
                returning the list of providers available in
                the environment. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1886 | 9 | 3 | The PersistenceProviderResolverHolder class holds the
                PersistenceProviderResolver instance that is in
                use. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1887 | 9 | 3 | The container is allowed to implement and set a specific
                PersistenceProviderResolver provided
                that it respects the PersistenceProviderResolver contract. The
                PersistenceProviderResolver
                instance to be used is set by the container using the
                PersistenceProviderResolverHolder.setPersistenceProviderResolver
                method. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1888 | 9 | 3 | If no PersistenceProviderResolver is set, the
                PersistenceProviderResolver-
                Holder must return a PersistenceProviderResolver that returns
                the providers whose persistence
                provider jars have been installed or made available as service
                providers or extensions. This default
                PersistenceProviderResolver instance does not guarantee the
                order in which persistence providers
                are returned. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1889 | 9 | 3 | the following methods must use the
                PersistenceProviderResolver instance returned by the
                PersistenceProviderResolverHolder.
                getPersistenceProviderResolver method to determine the list of
                available
                providers: Persistence.createEntityManagerFactory(String),
                Persistence.createEntityManagerFactory(String, Map),
                PersistenceUtil.isLoaded(Object),
                PersistenceUtil.isLoaded(Object, String) | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1890 | 9 | 3 | These methods must not cache the list of providers and must not
                cache the PersistenceProviderResolver
                instance. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1891 | 9 | 3 | Note that only a single PersistenceProviderResolver instance can
                be defined in a given classloader
                hierarchy at a given time. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1892 | 9 | 4 | In Java EE environments | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1892.1 | 9 | 4 | the container may call the PersistenceProvider
                        generateSchema method separately from and/or
                        prior to the creation of the entity manager factory for
                        the persistence unit, | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1892.2 | 9 | 4 | or the container may pass additional information to the
                        createContainerEntityManagerFactory
                        call to cause schema generation to happen as part of the
                        entity manager factory creation and
                        application initialization process. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1892.3 | 9 | 4 | The information passed to these methods
                        controls whether the generation occurs
                        directly
                        in the target database, whether DDL scripts for schema
                        generation are created, or both. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1893 | 9 | 4 | In Java SE environments | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1893.1 | 9 | 4 | the application may call the Persistence
                        generateSchema method separately from
                        and/or
                        prior to the creation of the entity manager factory | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1893.2 | 9 | 4 | or may pass information to the
                        createEntityManagerFactory method to cause schema
                        generation
                        to occur as part of the entity manager factory creation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1894 | 9 | 4 | The application may provide DDL scripts to be used for
                schema generation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1894.1 | 9 | 4 | The application developer may package these
                        scripts as part of the persistence unit | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1894.2 | 9 | 4 | or may specify strings corresponding to file
                        URLs for the location of such scripts. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1895 | 9 | 4 | In Java EE environments, such scripts may be executed
                by the container, or the
                container may direct the persistence provider to execute the
                scripts | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1896 | 9 | 4 | In Java SE environments, the execution of the scripts
                is the responsibility of the persistence
                provider. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1897 | 9 | 4 | In the absence of the specification of
                scripts, schema generation, if requested, will be determined by
                the object/relational metadata of the
                persistence
                unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898 | 9 | 4 | The following standard properties are defined for
                configuring the schema generation process. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.1 | 9 | 4 | In Java EE environments, any strings
                        corresponding to file URLs for script sources or targets
                        must specify absolute paths (not relative). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.2 | 9 | 4 | In Java EE environments, all source and target
                        file locations must be accessible to the application
                        server deploying the persistence unit | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.3 | 9 | 4 | The
                        jakarta.persistence.schema-generation.database.action
                        property specifies the action to be taken by the
                        persistence provider with regard to the database
                        artifacts. The
                        values for this property are "none", "create",
                        "drop-and-create", "drop". If the jakarta.persistence.
                        schema-generation.database.action property is not
                        specified, no schema generation actions must be taken on
                        the database. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.4 | 9 | 4 | The
                        jakarta.persistence.schema-generation.scripts.action
                        property specifies which scripts are to be generated by
                        the persistence provider. The values for this property
                        are "none", "create", "drop-and-create", "drop". Scripts
                        will only be generated if script targets are specified.
                        If this property is not specified, no scripts will be
                        generated. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.5 | 9 | 4 | The
                        jakarta.persistence.schema-generation.create-source
                        property specifies whether the creation of database
                        artifacts is to occur on the basis of the
                        object/relational mapping metadata, DDL script, or a
                        combination of the two. The values for this property are
                        "metadata", "script", "metadata-then-script",
                        "script-then-metadata". If this property is not
                        specified, and a script is specified by the
                        jakarta.persistence.
                        schema-generation.create-script-source property, the
                        script (only) will be used for schema generation;
                        otherwise if this property is not specified, schema
                        generation will occur on the basis of the
                        object/relational mapping metadata (only). The
                        "metadata-then-script" and "script-then-metadata" values
                        specify that a combination of metadata and script is to
                        be used and the order in which this use is to occur. If
                        either of these values is specified and the resulting
                        database actions are not disjoint, the results are
                        undefined and schema generation may fail. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.6 | 9 | 4 | The
                        jakarta.persistence.schema-generation.drop-source property
                        specifies whether the dropping of database artifacts is
                        to occur on the basis of the object/relational mapping
                        metadata, DDL script, or a combination of the two. The
                        values for this property are "metadata", "script",
                        "metadata-then-script", "script-then-metadata". If this
                        property is not specified, and a script is specified by
                        the jakarta.persistence.
                        schema-generation.drop-script-source property, the
                        script (only) will be used for the dropping of database
                        artifacts; otherwise if this property is not specified,
                        the dropping of database artifacts will occur on the
                        basis of the object/relational mapping metadata (only).
                        The "metadata-then-script" and "script-then-metadata"
                        values specify that a combination of metadata and script
                        is to be used and the order in which this use is to
                        occur. If either of these values is specified and the
                        resulting database actions are not disjoint, the results
                        are undefined and the dropping of database artifacts may
                        fail. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.7 | 9 | 4 | jakarta.persistence.schema-generation.create-database-schemas
                        In Java EE environments, it is anticipated that the Java
                        EE platform provider may wish to control the creation of
                        database schemas rather than delegate this task to the
                        persistence provider. The
                        jakarta.persistence.schema-generation.create-database-schemas
                        property specifies whether the persistence provider is
                        to create the database schema(s) in addition to creating
                        database objects such as tables, sequences, constraints,
                        etc. The value of this boolean property should be set to
                        true if the persistence provider is to create schemas in
                        the database or to generate DDL that contains “CREATE
                        SCHEMA” commands. If this property is not supplied, the
                        provider should not attempt to create database schemas.
                        This property may also be specified in Java SE
                        environments. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.8 | 9 | 4 | The
                        jakarta.persistence.schema-generation.scripts.create-target
                        property specifies a java.IO.Writer
                        configured for use by the persistence provider for
                        output of the DDL script or a string specifying
                        the file
                        URL for the DDL script. This property should only be
                        specified if scripts are to be
                        generated. If scripts are to be generated, the target
                        locations for the writing of these scripts must be
                        specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.9 | 9 | 4 | The
                        jakarta.persistence.schema-generation.drop-target
                        property specifies a java.IO.Writer
                        configured for use by the persistence provider for
                        output of the DDL script or a string specifying
                        the file
                        URL for the DDL script. This property should only be
                        specified if scripts are to be
                        generated. If scripts are to be generated, the target
                        locations for the writing of these scripts must be
                        specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.10 | 9 | 4 | jakarta.persistence.database-product-name,
                        jakarta.persistence.database-major-version,
                        jakarta.persistence.database-minor-version
                        - If scripts are to be generated by the
                        persistence provider and a connection to the
                        target database
                        is not supplied, the
                        jakarta.persistence.database-product-name property must
                        be specified. The value of this property should be the
                        value returned for the target
                        database by
                        the JDBC DatabaseMetaData method getDatabaseProductName. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.11 | 9 | 4 | jakarta.persistence.database-product-name,
                        jakarta.persistence.database-major-version,
                        jakarta.persistence.database-minor-version - If sufficient
                        database version information is not included in the
                        result of this method, the
                        jakarta.persistence.
                        database-major-version and jakarta.persistence.database-
                        minor-version properties should be specified as needed.
                        These should contain the
                        values returned by the JDBC getDatabaseMajorVersion and
                        getDatabaseMinor-
                        Version methods respectively. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.12 | 9 | 4 | The
                        jakarta.persistence.schema-generation.create-script-source
                        and jakarta.persistence.schema-generation.drop-script-source properties are used
                        for script
                        execution. In Java EE
                        container environments, it is generally expected that
                        the container will be responsible for
                        executing
                        DDL scripts, although the container is permitted to
                        delegate this task to the persistence
                        provider. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.13 | 9 | 4 | jakarta.persistence.schema-generation.create-script-source,
                        jakarta.persistence.schema-generation.drop-script-source
                        If DDL scripts are to be used in Java SE
                        environments
                        or if the Java EE container
                        delegates the execution of scripts to the persistence
                        provider, these properties must be
                        specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.14 | 9 | 4 | The
                        jakarta.persistence.schema-generation.create-script-source
                        property specifies a
                        java.IO.Reader configured for reading of the DDL script
                        or a
                        string designating a file URL for the DDL
                        script. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.15 | 9 | 4 | The
                        jakarta.persistence.schema-generation.drop-script-source
                        property specifies a java.IO.Reader
                        configured for reading of the DDL script or a string
                        designating a file URL for the DDL script. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1898.16 | 9 | 4 | jakarta.persistence.schema-generation.connection
                        The jakarta.persistence.schema-generation.connection
                        property specifies
                        the JDBC connection to be used for schema generation.
                        This is intended for use in Java EE
                        environments, where the platform provider may want to
                        control the database privileges that are
                        available to the persistence provider. This connection
                        is provided by the container, and should
                        be closed by the container when the schema generation
                        request or entity manager factory creation
                        completes. The connection provided must have credentials
                        sufficient for the persistence
                        provider to carry out the requested actions. If this
                        property is not specified, the persistence
                        provider should use the DataSource that has otherwise
                        been provided. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1899 | 9 | 4.1 | jakarta.persistence.sql-load-script-source | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1899.1 | 9 | 4 | If a
                        load script is to be used in Java SE environments or if
                        the Java EE container delegates the
                        execution
                        of the load script to the persistence provider, this
                        property must be specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1899.2 | 9 | 4 | The jakarta.persistence.sql-load-script-source
                        property specifies a java.IO.Reader
                        configured for reading of the SQL load script for
                        database initialization or a string
                        designating a file URL for the script. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:979 | 9 | 5 | In Java EE environments, the persistence provider must
                process the metadata that is passed to
                it at the time createContainerEntityManagerFactory method is
                called | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:980 | 9 | 5 | and create an instance of EntityManagerFactory using the
                PersistenceUnitInfo metadata for the factory. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1900 | 9 | 5 | The factory is then returned to the container. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1901 | 9 | 5 | In Java SE environments, the persistence provider must
                validate the persistence.xml file
                against
                the persistence schema that corresponds to the version specified
                by the persistence.xml file and report
                any validation
                errors. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1902 | 9 | 5 | When the entity manager factory for a persistence unit is
                created, it is the responsibility of the
                persistence provider to initialize the state of the metamodel
                classes of the persistence unit. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1903 | 9 | 5 | When the persistence provider obtains an object/relational
                mapping file, it processes the definitions
                that
                it contains. The persistence provider must validate any
                object/relational mapping files against the
                object/relational mapping schema version specified by the
                object/relational mapping file and report any
                validation errors. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1904 | 9 | 5 | The object relational mapping file must specify the
                object/relational mapping schema
                that it is written against by indicating the version element. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1905 | 9 | 5 | In Java SE environments, the application can pass the
                ValidatorFactory instance via the map that
                is passed as an argument to the
                Persistence.createEntityManagerFactory call. The map
                key used must be the standard property name
                jakarta.persistence.validation.factory. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1906 | 9 | 5 | If no ValidatorFactory instance is provided by the application,
                and if a Bean Validation provider is
                present in the classpath, the persistence provider must
                instantiate the ValidatorFactory using the
                default bootstrapping approach as defined by the Bean Validation
                specification, namely Validation.
                buildDefaultValidatorFactory(). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:981 | 9 | 5.1 | The interface jakarta.persistence.spi.PersistenceProvider
                is implemented by the persistence
                provider. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:982 | 9 | 5.1 | It is invoked by the container in Java EE
                        environments. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:983 | 9 | 5.1 | and by the jakarta.persistence.Persistence class
                        in Java SE environments. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:984 | 9 | 5.1 | The jakarta.persistence.spi.PersistenceProvider
                        implementation is not intended to be
                        used
                        by the application. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:985 | 9 | 5.1 | The PersistenceProvider implementation class must have
                a public no-arg constructor. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:985 | 9 | 5.2 | The ProviderUtil interface is invoked by the PersistenceUtil
                implementation to determine the load status
                of an entity or entity attribute. It is not intended to be
                invoked by the application. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:986 | 9 | 5.3 | Persistence unit properties and hints may be passed to
                persistence providers in the Map
                parameter of the createEntityManagerFactory(String, Map) method.
                These properties correspond to the
                elements in the persistence.xml file. When any of these
                properties are specified in the Map
                parameter, their values override the values of the corresponding
                elements in the persistence.xml
                file for the named persistence unit. They also override any
                defaults that the provider might have
                applied | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:987 | 9 | 5.3 | The properties listed below are defined by this
                specification. | true | 
 | false | technology | removed | false | 
| PERSISTENCE:SPEC:987.1 | 9 | 5.3 | jakarta.persistence.lock.timeout — integer value
                        in milliseconds for pessimistic
                        lock timeout or string corresponding to integer value.
                        This is a hint only. | true | 
 | false | technology | removed | false | 
| PERSISTENCE:SPEC:987.2 | 9 | 5.3 | jakarta.persistence.query.timeout — integer value
                        in milliseconds for query timeout
                        or string corresponding to integer value. This is a hint
                        only. | true | 
 | false | technology | removed | false | 
| PERSISTENCE:SPEC:988 | 9 | 5.3 | jakarta.persistence.provider — string
                        corresponding to the provider element in
                        the persistence.xml. | true | 
 | false | technology | removed | false | 
| PERSISTENCE:SPEC:989 | 9 | 5.3 | jakarta.persistence.transactionType — string
                        corresponding to the transaction-type
                        attribute in the persistence.xml. | true | 
 | false | technology | removed | false | 
| PERSISTENCE:SPEC:990 | 9 | 5.3 | jakarta.persistence.jtaDataSource — string
                        corresponding to the jta-data-source
                        element
                        in the persistence.xml. | true | 
 | false | technology | removed | false | 
| PERSISTENCE:SPEC:987.3 | 9 | 5.3 | jakarta.persistence.sharedCache.mode — string
                        corresponding to the
                        shared-cache-mode element in the persistence.xml. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:987.4 | 9 | 5.3 | jakarta.persistence.validation.mode — string
                        corresponding to the validation-mode
                        element
                        in the persistence.xml. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:987.5 | 9 | 5.3 | jakarta.persistence.validation.group.pre-persist
                        — string corresponding to the
                        jakarta.persistence.validation.group.pre-persist property
                        in the persistence.xml. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:987.6 | 9 | 5.3 | jakarta.persistence.validation.group.pre-update —
                        string corresponding to the
                        jakarta.persistence.validation.group.pre-update property
                        in the persistence.xml. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:987.7 | 9 | 5.3 | jakarta.persistence.validation.group.pre-remove —
                        string corresponding to the
                        jakarta.persistence.validation.group.pre-remove property
                        in the persistence.xml. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1907 | 9 | 5.3 | Any number of vendor-specific properties may also be
                included in the map. Properties that are
                not recognized by a vendor must be ignored. | true | 
 | false | technology | removed | false | 
| PERSISTENCE:SPEC:1908 | 9 | 5.3 | Entries that make use of the namespace
                jakarta.persistence and its subnamespaces must not be used
                for vendor-specific information. The namespace jakarta.persistence
                is reserved for use by this
                specification. | true | 
 | false | technology | removed | false | 
| PERSISTENCE:SPEC:1909 | 9 | 6 | The enum jakarta.persistence.spi.PersistenceUnitTransactionType
                defines whether the entity managers
                created by the factory will be JTA or resource-local entity
                managers. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1910 | 9 | 6 | The enum jakarta.persistence.SharedCacheMode defines the use of
                caching. The persistence. xml
                shared-cache-mode element has no default value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1911 | 9 | 6 | The getSharedCacheMode method must return UNSPECIFIED if the
                shared-cache-mode element has not been
                specified for the persistence unit. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1912 | 9 | 6 | The enum jakarta.persistence.ValidationMode defines the
                validation mode. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1913 | 9 | 6.1 | The jakarta.persistence.spi.ClassTransformer interface is
                implemented by a persistence provider
                that wants to transform entities and managed classes at class
                load time or at class redefinition time. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1914 | 9 | 7 | The Persistence class is used to obtain an EntityManagerFactory
                instance in Java SE environments. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1915 | 9 | 7 | It may also be used for schema generation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1916 | 9 | 7 | The Persistence class is available in a Java EE container
                environment as well; however, support for the
                Java SE bootstrapping APIs is not required in container
                environments. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1917 | 9 | 7 | The Persistence class is used to obtain a PersistenceUtil
                instance in both Java EE and Java SE
                environments. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1918 | 9 | 7 | The properties argument passed to the createEntityManagerFactory
                method is used to specify both standard
                and vendor-specific properties and hints intended for use in
                creating the entity manager factory. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919 | 9 | 7 | The following properties correspond to the elements and
                properties in the persistence.xml file. When any
                of
                these properties are specified in the Map parameter passed to
                the createEntityManagerFactory
                method, their values override the values of the corresponding
                elements and properties in the
                persistence.
                xml file for the named persistence unit. They also override any
                defaults that the persistence
                provider might have applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.1 | 9 | 7 | jakarta.persistence.lock.timeout — integer value in
                        milliseconds for pessimistic lock timeout
                        or
                        string corresponding to integer value. This corresponds
                        to the property of the
                        same name in the persistence.xml, and is a hint only. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1919.2 | 9 | 7 | jakarta.persistence.query.timeout — integer value in
                        milliseconds for query timeout or string
                        corresponding to integer value. This corresponds to the
                        property of the same name in the persistence.xml, and is
                        a hint only. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1919.3 | 9 | 7 | jakarta.persistence.provider — string corresponding to the
                        provider element in the
                        persistence.xml | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.4 | 9 | 7 | jakarta.persistence.transactionType — string corresponding
                        to the transaction type attribute
                        in
                        the persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.5 | 9 | 7 | jakarta.persistence.jtaDataSource — string corresponding
                        to the jta-data-source element in the
                        persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.6 | 9 | 7 | jakarta.persistence.nonJtaDataSource — string
                        corresponding to the non-jta-data-source element
                        in
                        the persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.7 | 9 | 7 | jakarta.persistence.sharedCache.mode — string
                        corresponding to the shared-cache-mode element
                        in
                        the persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.8 | 9 | 7 | jakarta.persistence.validation.mode — string corresponding
                        to the validation mode element in
                        the
                        persistence.xml. The value is "auto", "callback", or
                        "none". | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.9 | 9 | 7 | jakarta.persistence.validation.group.pre-persist — string
                        corresponding to the
                        jakarta.persistence.validation.group.pre-persist property
                        in the persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.10 | 9 | 7 | jakarta.persistence.validation.group.pre-update — string
                        corresponding to the
                        jakarta.persistence.validation.group.pre-update property
                        in the persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.11 | 9 | 7 | jakarta.persistence.validation.group.pre-remove — string
                        corresponding to the
                        jakarta.persistence.validation.group.pre-remove property
                        in the persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.12 | 9 | 7 | jakarta.persistence.schema-generation.create-script-source
                        - string
                        corresponding to the
                        jakarta.persistence.ddl-create-script-source property in
                        the persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.13 | 9 | 7 | jakarta.persistence.schema-generation.drop-script-source
                        —string corresponding to the
                        jakarta.persistence.ddl-drop-script-source property in the
                        persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.14 | 9 | 7 | jakarta.persistence.sql-load-script-source
                        —string corresponding to the
                        jakarta.persistence.sql-load-script-source property in the
                        persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.21 | 9 | 7 | jakarta.persistence.schema-generation.database.action —
                        string corresponding to the
                        jakarta.persistence.schema-generation.database.action
                        property in the persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.22 | 9 | 7 | jakarta.persistence.schema-generation.scripts.action —
                        string corresponding to the
                        jakarta.persistence.schema-generation.scripts.action
                        property in the persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.23 | 9 | 7 | jakarta.persistence.schema-generation.create-source —
                        string corresponding to the
                        jakarta.persistence.schema-generation.create-source
                        property in the persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.24 | 9 | 7 | jakarta.persistence.schema-generation.drop-source
                        — string corresponding to the
                        jakarta.persistence.schema-generation.drop-source property
                        in the persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.25 | 9 | 7 | jakarta.persistence.schema-generation.scripts.create-target
                        —string corresponding to the
                        jakarta.persistence.schema-generation.scripts.create-target
                        property in the persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.21 | 9 | 7 | jakarta.persistence.schema-generation.scripts.drop-target
                        — string corresponding to the
                        jakarta.persistence.schema-generation.scripts.drop-target
                        property in the persistence.xml. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.15 | 9 | 7 | jakarta.persistence.jdbc.driver — value is the fully
                        qualified name of the driver class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.16 | 9 | 7 | jakarta.persistence.jdbc.url — string corresponding to the
                        driver-specific URL. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.17 | 9 | 7 | jakarta.persistence.jdbc.user — value is the username used
                        by database connection. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.18 | 9 | 7 | jakarta.persistence.jdbc.password — value is the password
                        for database connection validation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.19 | 9 | 7 | jakarta.persistence.dataSource — value is instance of
                        javax.sql.DataSource to be used for the
                        specified persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1919.20 | 9 | 7 | jakarta.persistence.validation.factory — value is instance
                        of
                        jakarta.validation.ValidatorFactory | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1920 | 9 | 7 | Any number of vendor-specific properties may also be included in
                the map. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1921 | 9 | 7 | If a persistence provider does not recognize a property (other
                than a property defined by this
                specification), the provider must ignore it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1922 | 9 | 7 | Vendors should use vendor namespaces for properties (e.g.,
                com.acme.persistence.logging).
                Entries that make use of the namespace jakarta.persistence and its
                subnamespaces must not be
                used for vendor-specific information. The namespace
                jakarta.persistence is reserved for use by
                this specification. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1923 | 9 | 8.1 | The implementation of the PersistenceUtil.isLoaded(Object)
                method must determine the
                list of persistence providers available in the runtime
                environment and call the ProviderUtil.
                isLoaded(Object) method on each of them until either: | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1923.1 | 9 | 8.1 | one provider returns LoadState.LOADED. In this case
                        PersistenceUtil.isLoaded returns true. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1923.2 | 9 | 8.1 | one provider returns LoadState.NOT_LOADED. In this case
                        PersistenceUtil.isLoaded returns
                        false. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1923.3 | 9 | 8.1 | all providers return LoadState.UNKNOWN. In this case
                        PersistenceUtil.isLoaded returns true. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1923.4 | 9 | 8.1 | If the PersistenceUtil implementation determines that
                        only a single provider is available in
                        the
                        environment, it is permitted to use provider-specific
                        methods to determine the result of
                        isLoaded(Object) as long as the semantics defined in
                        section 3.2.9 are observed. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1924 | 9 | 8.1 | The implementation of the
                PersistenceUtil.isLoaded(Object,String) method must
                determine the list of persistence providers available in the
                environment and call the ProviderUtil.
                isLoadedWithoutReference method on each of them until either: | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1924.1 | 9 | 8.1 | one provider returns LoadState.LOADED. In this case
                        PersistenceUtil.isLoaded returns true. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1924.2 | 9 | 8.1 | one provider returns LoadState.NOT_LOADED. In this case
                        PersistenceUtil.isLoaded returns
                        false. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1924.3 | 9 | 8.1 | all providers return LoadState.UNKNOWN. In this case,
                        the PersistenceUtil.isLoaded method
                        then
                        calls ProviderUtil.isLoadedWithReference on each of the
                        providers until:
                        • one provider returns LoadState.LOADED. In this case
                        PersistenceUtil.isLoaded return true.
                        • one provider returns LoadState.NOT_LOADED. In this
                        case, PersistenceUtil.isLoaded returns
                        false.
                        • all providers return LoadState.UNKNOWN. In this case,
                        PersistenceUtil.isLoaded returns
                        true. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1924.4 | 9 | 8.1 | If the PersistenceUtil implementation determines that
                        only a single provider is available in
                        the
                        environment, it is permitted to use provider-specific
                        methods to determine the result of
                        isLoaded(Object, String) as long as the semantics
                        defined in section 3.2.9 are observed. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:993 | 10 | 1 | Entity Annotation | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:994 | 10 | 1 | The name annotation element specifies the
                        entity name. If the name element is not
                        specified, the entity name defaults to the unqualified
                        name of the entity class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:995 | 10 | 1 | This name is used to refer to the entity in
                        queries. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:997 | 10 | 2 | Callback Annotations | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:998 | 10 | 2 | The EntityListeners annotation specifies the callback
                listener classes to be used for
                an entity or mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1925 | 10 | 2 | The ExcludeSuperclassListeners annotation specifies that the
                invocation of superclass listeners
                is to be excluded for the entity class (or mapped superclass)
                and its subclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1926 | 10 | 2 | The ExcludeDefaultListeners annotation specifies that the
                invocation of default listeners is to
                be excluded for the entity class (or mapped superclass) and its
                subclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:999 | 10 | 2 | The following annotations are used to specify callback
                methods for the corresponding
                lifecycle events. These annotations may be applied to methods of
                an entity class, of a mapped
                superclass, or of an entity listener class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:999.1 | 10 | 2 | PrePersist | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:999.2 | 10 | 2 | PostPersist | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:999.3 | 10 | 2 | PreRemove | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:999.4 | 10 | 2 | PostRemove, | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:999.5 | 10 | 2 | PreUpdate | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:999.6 | 10 | 2 | PostUpdate | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:999.7 | 10 | 2 | PostLoad | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2454 | 10 | 3.1 | The NamedEntityGraph annotation is used to define a
                named entity graph. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2455 | 10 | 3.1 | The entity graph may be retrieved by name using the
                EntityManagerFactory interface. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2456 | 10 | 3.1 | The entity graph may be used to specify the path and
                boundaries for find operations or queries. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2457 | 10 | 3.1 | The NamedEntityGraph annotation must be applied to the
                entity class that forms the root of the corresponding graph of
                entities. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2458 | 10 | 3.1 | The name element is used to refer to the entity graph.
                It defaults to the entity name of the root entity to which the
                annotation is applied. Entity graph names must be unique within
                the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2459 | 10 | 3.1 | The attributeNodes element lists attributes of the
                annotated entity class that are to be included in the entity
                graph. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2460 | 10 | 3.1 | The includeAllAttributes element specifies that all
                attributes of the annotated entity class are
                to be included in the entity graph. An attributeNode element may
                still be used in conjunction with
                this element to specify a subgraph for the attribute. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2461 | 10 | 3.1 | The subgraphs element specifies a list of subgraphs,
                further specifying attributes that are managed
                types. These subgraphs are referenced by name from
                NamedAttributeNode definitions. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2462 | 10 | 3.1 | The subclassSubgraphs element specifies a list of
                subgraphs that add additional attributes for subclasses of the
                root entity to which the annotation is applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2463 | 10 | 3.1 | The NamedEntityGraphs annotation is used to specify
                multiple named entity graphs for the entity to which it is
                applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2464 | 10 | 3.2 | The NamedAttributeNode annotation is used to specify an
                attribute node of within an entity graph
                or subgraph. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2465 | 10 | 3.2 | The value element specifies the name of the
                corresponding attribute. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2466 | 10 | 3.2 | The subgraph element is used to refer to a
                NamedSubgraph specification that further characterizes
                an attribute node corresponding to a managed type (entity or
                embeddable). The value of the subgraph
                element must correspond to the name used for the subgraph in the
                NamedSubgraph element.
                If the referenced attribute is an entity which has entity
                subclasses, there may be more than one Named-
                Subgraph element with this name, and the subgraph element is
                considered to refer to all of these. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2467 | 10 | 3.2 | The keySubgraph element is used to refer to a
                NamedSubgraph specification that further characterizes
                an attribute node corresponding to the key of a Map-valued
                attribute. The value of the the key-
                Subgraph element must correspond to the name used for the
                subgraph in the NamedSubgraph
                element. If the referenced attribute is an entity which has
                entity subclasses, there may be more than one
                NamedSubgraph element with this name, and the keySubgraph
                element is considered to refer to
                all of these. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2468 | 10 | 3.3 | The NamedSubgraph annotation is used to further define
                an attribute node. It is referenced by its
                name from the subgraph or keySubgraph element of a
                NamedAttributeNode element. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2469 | 10 | 3.3 | The name element is the name used to reference the
                subgraph from a NamedAttributeNode definition.
                In the case of entity inheritance, multiple subgraph elements
                have the same name. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2470 | 10 | 3.3 | The type element must be specified when the subgraph
                corresponds to a subclass of the entity type
                corresponding to the referencing attribute node. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2471 | 10 | 3.3 | The attributeNodes element lists attributes of the
                class that must be included. If the subgraph corresponds
                to a subclass of the class referenced by the corresponding
                attribute node, only subclass-specific
                attributes are listed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1004 | 10 | 4.1 | The NamedQuery annotation is used to specify a named
                query in the Java Persistent query
                language. The name element is used to refer to the query when
                using the EntityManager methods that
                create query objects. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1238 | 10 | 4.1 | The query element must specify a query string in the
                Java Persistence query language. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1927 | 10 | 4.1 | The lockMode element specifies a lock mode for the results
                returned by the query. If a lock mode
                other than NONE is specified, the query must be executed within
                a transaction and the persistence
                context
                joined to the transaction. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1928 | 10 | 4.1 | The hints elements may be used to specify query properties and
                hints. Properties defined by this
                specification
                must be observed by the provider; hints defined by this
                specification should be observed by the
                provider when possible. Vendor-specific hints that are not
                recognized by a provider must be ignored. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1929 | 10 | 4.1 | The NamedQuery and NamedQueries annotations can be applied to an
                entity or mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1005 | 10 | 4.2 | The NamedNativeQuery annotation is used to specify a
                native SQL named query. The name element
                is used to refer to the query when using the EntityManager
                methods that create query objects. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1930 | 10 | 4.2 | The query element specifies the native query. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1006 | 10 | 4.2 | The resultClass element refers to the class of the
                result. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1007 | 10 | 4.2 | the value of the resultSetMapping element is the name
                of a SQLResultSetMapping as defined in
                the metadata. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1931 | 10 | 4.2 | The hints elements may be used to specify query properties and
                hints. Hints defined by this
                specification
                should be observed by the provider when possible.
                Vendor-specific hints that are not recognized by
                a provider must be ignored. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1932 | 10 | 4.2 | The NamedNativeQuery and NamedNativeQueries annotations
                can be applied to an entity or
                mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1933 | 10 | 4.3 | The NamedStoredProcedureQuery annotation is used to specify a
                stored procedure, its parameters, and its
                result type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1934 | 10 | 4.3 | The name element is the name that is passed as an argument to
                the createNamedStoredProcedureQuery method
                to create an executable StoredProcedureQuery object. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1935 | 10 | 4.3 | The procedureName element is the name of the stored procedure in
                the database. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1936 | 10 | 4.3 | The parameters of the stored procedure are specified by the
                parameters element. All parameters must be
                specified in the order in which they occur in the parameter list
                of the stored procedure. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1937 | 10 | 4.3 | The resultClasses element refers to the class (or classes) that
                are used to map the results. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1938 | 10 | 4.3 | The resultSetMappings element names one or more result set
                mappings, as defined by the
                SqlResultSetMapping annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1939 | 10 | 4.3 | If there are multiple result sets, it is assumed that they will
                be mapped using the same mechanism | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1940 | 10 | 4.3 | The order of the specification of these mappings must be the
                same as the order in which the result sets
                will be returned by the stored procedure invocation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1941 | 10 | 4.3 | If the stored procedure returns one or more result sets and no
                resultClasses or resultSetMappings
                element is specified, any result set will be returned as a list
                of type Object[]. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1942 | 10 | 4.3 | The combining of different strategies for the mapping of stored
                procedure result sets is undefined. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1943 | 10 | 4.3 | The hints element may be used to specify query properties and
                hints. Properties defined by this
                specification
                must be observed by the provider. Vendor-specific hints that are
                not recognized by a provider
                must be ignored. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1944 | 10 | 4.3 | The NamedStoredProcedureQuery and NamedStoredProcedureQueries
                annotations can be applied to an entity or
                mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1945 | 10 | 4.3 | All parameters of a named stored procedure query must be
                specified using the StoredProcedureParameter
                annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1946 | 10 | 4.3 | The name element refers to the name of the parameter as defined
                by the stored procedure in the database. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1947 | 10 | 4.3 | If a parameter name is not specified, it is assumed that the
                stored procedure uses positional
                parameters. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1948 | 10 | 4.3 | The mode element specifies whether the parameter is an IN,
                INOUT, OUT, or REF_CURSOR parameter. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1949 | 10 | 4.3 | REF_CURSOR parameters are used by some databases to
                return result sets from stored procedures. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1950 | 10 | 4.3 | The type element refers to the JDBC type for the
                parameter. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1008 | 10 | 4.4 | Annotations for SQL Query Result Set Mappings | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1009 | 10 | 4.4 | The SqlResultSetMapping annotation is used to specify
                the mapping of the result of a
                native SQL query or stored procedure. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1010 | 10 | 4.4 | The name element is the name given to the result set
                mapping and is used to refer to it in
                the methods of the Query and StoredProcedureQuery APIs. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1011 | 10 | 4.4 | The entities, classes, and columns elements are used to
                specify the mapping to
                entities, constructors, and to scalar values respectively. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1012 | 10 | 4.4 | The entityClass element specified the class of the
                result. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1014 | 10 | 4.4 | The fields element is used to map the columns specified
                in the SELECT list of the query
                to the properies or fields of the entity class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1013 | 10 | 4.4 | The discriminatorColumn element is used to specify the
                column name (or alias) of the
                column in the SELECT list that is used to determine the type of
                the entity instance. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1015 | 10 | 4.4 | The name element is the name of the persistent field or
                property of the class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1016 | 10 | 4.4 | The column element specifies the name of the
                corresponding column in the SELECT list | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1951 | 10 | 4.4 | The targetClass element specifies the class whose
                constructor is to be invoked. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1952 | 10 | 4.4 | The columns element specifies the mapping of columns in
                the SELECT list to the arguments of the
                intended constructor. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1953 | 10 | 4.4 | The name element specifies the name of the column in
                the SELECT list. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1954 | 10 | 4.4 | The type element specifies the Java type to which the
                column type is to be mapped. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1955 | 10 | 4.4 | If the type element is not specified, the default JDBC
                type mapping for the column will be
                used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1018 | 10 | 5 | References to EntityManager and EntityManagerFactory | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1019 | 10 | 5.1 | The PersistenceContext annotation is used to
                        express a dependency on a
                        container-managed
                        entity manager and its associated persistence context. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1020 | 10 | 5.1 | The name element refers to the name by which
                        the entity manager is to be accessed
                        in
                        the environment referencing context, and is not needed
                        when dependency injection is used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1021 | 10 | 5.1 | The optional unitName element refers to the
                        name of the persistence unit. If the
                        unitName element is specified, the persistence unit for
                        the entity manager that is
                        accessible in
                        JNDI must have the same name. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1022 | 10 | 5.1 | The type element specifies whether a
                        transaction-scoped or extended persistence
                        context
                        is to be used. If the type element is not specified, a
                        transaction-scoped persistence
                        context is
                        used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1018.1 | 10 | 5.1 | The synchronizationType element specifies
                        whether the persistence context is always
                        automatically synchronized with the current transaction
                        or whether the persistence context
                        must
                        be explicitly joined to the current transaction by means
                        of the EntityManager
                        joinTransaction
                        method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1018.2 | 10 | 5.1 | The optional properties element may be used to
                        specify properties for the container
                        or
                        persistence provider. Properties defined by this
                        specification must be observed by the
                        provider. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1018.3 | 10 | 5.1 | The optional properties element may be used to
                        specify properties for the container
                        or
                        persistence provider. Properties defined by this
                        specification must be observed by the
                        provider.
                        Vendor specific
                        properties may be included in the set of properties, and
                        are passed to the persistence
                        provider
                        by the
                        container when the entity manager is created. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1018.4 | 10 | 5.1 | Properties that are not recognized by a vendor
                        must be ignored. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1018.5 | 10 | 5.1 | The PersistenceContexts annotation declares one
                        or more PersistenceContext annotations.
                        It is used to express a dependency on multiple
                        persistence contexts. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1023 | 10 | 5.2 | The PersistenceUnit annotation is used to express a
                dependency on an entity manager
                factory and its associated persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1024 | 10 | 5.2 | The name element refers to the name by which the entity
                manager factory is to be
                accessed in the environment referencing context, and is not
                needed when dependency injection
                is
                used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1025 | 10 | 5.2 | The optional unitName element refers to the name of the
                persistence unit as defined
                in
                the persistence.xml file. If the unitName element is specified,
                the persistence unit for the
                entity manager factory that is accessible in JNDI must have the
                same name. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2420 | 10 | 5.2 | The PersistenceUnits annotation declares one or more
                PersistenceUnit annotations. It is
                used to express a dependency on multiple persistence units | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1956 | 10 | 6 | A converter class must be | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1956.1 | 10 | 6 | annotated with the Converter annotation | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1956.2 | 10 | 6 | defined in the XML descriptor as a converter | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1957 | 10 | 6 | 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). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1958 | 10 | 6 | In determining whether a converter is applicable to an
                attribute, the provider must treat
                primitive types and wrapper types as equivalent. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1959 | 10 | 6 | 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. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1960 | 10 | 6 | 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. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1961 | 10 | 6 | Note that if autoApply is true, the Convert annotation may be
                used to override or disable auto-apply
                conversion on a per-attribute basis. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1962 | 10 | 6 | If there is more than one converter defined for the same target
                ype, the Convert annotation should be
                used to explicitly specify which converter to use. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1026 | 11 | 0 | The implementation of this
                specification must assume this application dependency upon the
                object/relational mapping metadata | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1027 | 11 | 0 | It is permitted, but not required, that DDL generation
                be supported by an implementation of
                this specification. Portable applications should not rely upon
                the use of DDL generation. | false | 
 | true | technology | removed | true | 
| PERSISTENCE:SPEC:1963 | 11 | 1 | XML metadata may be used as an alternative to these
                annotations, or to override or augment
                annotations | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1239 | 11 | 1.1 | The Access annotation is used to specify an access type
                to be applied to an entity class,
                mapped superclass, or embeddable class, or to a specific
                attribute of such a class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1964 | 11 | 1.2 | The AssociationOverride annotation may be applied to an entity
                that extends a mapped superclass to
                override a relationship mapping defined by the mapped
                superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1062.1 | 11 | 1.2 | If the AssociationOverride annotation is not specified,
                the association is mapped the same as
                in the original mapping. The joinColumns element refers to the
                table for the class that contains the
                annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1965 | 11 | 1.2 | When used to override a mapping defined by a mapped superclass,
                the AssociationOverride annotation is
                applied to the entity class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1241 | 11 | 1.2 | The AssociationOverride annotation may be used to
                override a relationship mapping from an
                embeddable within an entity to another entity when the
                embeddable is on the owning side of the
                relationship. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1966 | 11 | 1.2 | When used to override a relationship mapping defined by an
                embeddable class (including an embeddable
                class embedded within another embeddable class), the
                AssociationOverride annotation is applied to the
                field or property containing the embeddable. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1967 | 11 | 1.2 | When the AssociationOverride annotation is used to override a
                relationship mapping from an embeddable
                class, the name element specifies the referencing relationship
                field or property within the embeddable
                class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1968 | 11 | 1.2 | To override mappings at multiple levels of embedding, a dot
                (".") notation syntax must be used in the
                name element to indicate an attribute within an embedded
                attribute. The value of each identifier used
                with the dot notation is the name of the respective embedded
                field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1242 | 11 | 1.2 | When the AssociationOverride annotation is applied to override
                the mappings of an embeddable class used
                as a map value, "value." must be used to prefix the name of the
                attribute within the embeddable class
                that is being overridden in order to specify it as part of the
                map value. The use of map keys that
                contain embeddables that reference entities is not permitted. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1969 | 11 | 1.2 | If the relationship mapping is a foreign key mapping, the
                joinColumns element of the AssociationOverride annotation is
                used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1243 | 11 | 1.2 | If the relationship mapping uses a join table, the joinTable
                element of the AssociationOverride element
                must be specified to override the mapping of the join table
                and/or its join columns. Note that either
                the joinColumns element or the joinTable element of the
                AssociationOverride annotation is specified
                for overriding a given relationship (but never both). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2488 | 11 | 1.2 | The foreignKey element is used to specify or control
                the generation of a foreign key constraint for the columns
                corresponding to the joinColumns element when table generation
                is in effect. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2489 | 11 | 1.2 | If both
                this element and the foreignKey element of any of the
                joinColumns elements are specified, the
                behavior is undefined. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1240 | 11 | 1.2 | The AssociationOverride annotation may be applied to an
                entity that extends a mapped superclass
                to override a many-to-one or one-to-one mapping defined by the
                mapped superclass. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1970 | 11 | 1.3 | The mappings of multiple relationship properties or fields may
                be overridden. The AssociationOverrides
                annotation is used for this purpose. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1059 | 11 | 1.4 | The AttributeOverride annotation is used to override
                the mapping of a Basic (whether explicit
                or default) property or field or Id property or field. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1244 | 11 | 1.4 | The AttributeOverride annotation may be applied to an
                entity that extends a mapped superclass
                or to an embedded field or property to override a Basic mapping
                or Id mapping defined by the mapped
                superclass or embeddable class (or embeddable class of one of
                its attributes). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1971 | 11 | 1.4 | The AttributeOverride annotation may be applied to an
                element collection containing instances
                of an embeddable class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1972 | 11 | 1.4 | The AttributeOverride annotation may be applied to a
                map collection whose key and/or value is
                an embeddable class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1245 | 11 | 1.4 | When the AttributeOverride annotation is applied to a
                map, "key." or "value." must be used to
                prefix the name of the attribute that is being overridden in
                order to specify it as part of the map key
                or map value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1973 | 11 | 1.4 | To override mappings at multiple levels of embedding, a
                dot (".") notation form must be used in
                the name element to indicate an attribute within an embedded
                attribute. The value of each identifier
                used
                with the dot notation is the name of the respective embedded
                field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1974 | 11 | 1.4 | If the AttributeOverride annotation is not specified,
                the column is mapped the same as in the
                original mapping. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1975 | 11 | 1.4 | The column element refers to the table for the class
                that contains the annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1062 | 11 | 1.5 | The mappings of multiple properties or fields may be
                overridden. The AttributesOverrides
                annotation is used for this purpose. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1062.0 | 9 | 1.5 | The AssociationOverride annotation is used to override
                a many-to-one or one-to-one mapping of
                property or field for an entity relationship. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1069 | 11 | 1.6 | The Basic annotation is the simplest type of mapping to
                a database column. The Basic annotation
                can be applied to a persistent property or instance variable of
                any of the following types | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1070 | 11 | 1.6 | Java primitive types | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1072 | 11 | 1.6 | wrappers of the primitive types | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1071 | 11 | 1.6 | java.lang.String | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1077 | 11 | 1.6 | java.math.BigInteger | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1078 | 11 | 1.6 | java.math.BigDecimal | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1079 | 11 | 1.6 | java.util.Date | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1080 | 11 | 1.6 | java.util.Calendar | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1081 | 11 | 1.6 | java.sql.Date | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1082 | 11 | 1.6 | java.sql.Time | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1083 | 11 | 1.6 | java.sql.TimeStamp | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1073 | 11 | 1.6 | byte[] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1074 | 11 | 1.6 | Byte[] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1075 | 11 | 1.6 | char[] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1076 | 11 | 1.6 | Character[] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1069.1 | 11 | 1.6 | enums | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1069.2 | 11 | 1.6 | any other type that implements Serializable | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1976 | 11 | 1.6 | the use of
                the Basic annotation is optional for persistent fields and
                properties of these types. If the Basic
                annotation
                is not specified for such a field or property, the default
                values of the Basic annotation will apply. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1977 | 11 | 1.6 | The EAGER strategy is a requirement on the persistence
                provider runtime that data must be
                eagerly fetched. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1084 | 11 | 1.6 | The LAZY strategy is a hint to the persistence provider
                runtime that data should be
                fetched lazily when it is first accessed. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1085 | 11 | 1.6 | The implementation is permitted to eagerly fetch data
                for which the LAZY strategy hint hasd
                been specified. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1086 | 11 | 1.6 | In particular, lazy fetching might only be available
                for Basic mappings for which
                property-based access is used. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1087 | 11 | 1.6 | The optional element is a hint as to whether the value
                of the field or property may
                be null. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1088 | 11 | 1.6 | It is disregarded for primitive types. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1978 | 11 | 1.7 | The Cacheable annotation specifies whether an entity
                should be cached if caching is enabled
                when the value of the persistence.xml shared-cache-mode element
                is ENABLE_SELECTIVE or
                DISABLE_SELECTIVE. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1979 | 11 | 1.7 | The value of the Cacheable annotation is inherited by
                subclasses; it can be overridden by
                specifying Cacheable on a subclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1980 | 11 | 1.7 | Cacheable(false) means that the entity and its state
                must not be cached by the provider. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1981 | 11 | 1.7 | If the shared-cache-mode element is not specified in
                the persistence.xml file and the
                jakarta.persistence.sharedCache.mode property is not specified
                when the entity manager
                factory for the persistence unit is created, the semantics of
                the Cacheable annotation are undefined. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1982 | 11 | 1.8 | The CollectionTable annotation is used in the mapping
                of collections of | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1982.1 | 11 | 1.8 | basic types | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1982.2 | 11 | 1.8 | embeddable types | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1246 | 11 | 1.8 | The CollectionTable annotation specifies the table that
                is used for the mapping of the
                collection and is specified on the collection valued field or
                property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1983 | 11 | 1.8 | By default, the columns of the collection table that correspond
                to the embeddable class are derived from
                the attributes of the embeddable class according to the default
                values of the Column annotation, | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1984 | 11 | 1.8 | By default, the columns of the collection table that correspond
                to the basic type are derived from the
                attributes from the basic type according to the default values
                of the Column annotation, | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1985 | 11 | 1.8 | In the case of a basic type, the column name is derived from the
                name of the collection-valued field or
                property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1986 | 11 | 1.8 | In the case of an embeddable class, the column names are derived
                from the field or property names of the
                embeddable class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1247 | 11 | 1.8 | To override the default properties of the column used
                for a basic type, the Column annotation
                is used on the collection-valued attribute in addition to the
                ElementCollection annotation. The value of
                the table element of the Column annotation defaults to the name
                of the collection table. To override
                these defaults for an embeddable class, the AttributeOverride
                and/or AttributeOverrides annotations must
                be used in addition to the ElementCollection annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1987 | 11 | 1.8 | The value of the table element of the Column annotation used in
                the AttributeOverride annotation
                defaults to the name of the collection table. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1988 | 11 | 1.8 | If the embeddable class contains references to other entities,
                the default values for the columns
                corresponding to those references may be overridden by means of
                the AssociationOverride and/or
                AssociationOverrides annotations | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2504 | 11 | 1.8 | The foreignKey element is used to specify or control the generation of a foreign key constraint for
                the columns corresponding to the joinColumns element when table generation is in effect. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2504.1 | 11 | 1.8 | If both this element and the foreignKey element of any of the joinColumns elements are specified, the behavior is undefined. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2504.2 | 11 | 1.8 | If no foreignKey annotation element is specified in either location, the persistence provider's default foreign key strategy will apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1989 | 11 | 1.8 | If the CollectionTable annotation is missing, the default values
                of the CollectionTable annotation
                elements apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1037 | 11 | 1.9 | The Column annotation is used to specify a mapped
                column for a persistent property or field. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1990 | 11 | 1.9 | If no Column annotation is specified, the default
                values apply | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1991 | 11 | 1.10 | The Convert annotation is applied directly to an
                attribute of an entity, mapped superclass, or
                embeddable class to specify conversion of a Basic attribute or
                to override the use of a converter that
                has
                been specified as autoApply=true. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2421 | 11 | 1.10 | When persistent properties are used, the Convert
                annotation is applied to the getter method. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1992 | 11 | 1.10 | The Convert annotation may be applied to an entity that
                extends a mapped superclass to specify
                or
                override the conversion mapping for an inherited basic
                attribute. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2422 | 11 | 1.10 | The converter element is used to specify the converter
                that is to be applied. If an autoApply
                converter
                is applicable to the given field or property, the converter
                specified by the converter element
                will be applied instead. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2423 | 11 | 1.10 | The disableConversion element specifies that any
                applicable autoApply converter must not be
                applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2424 | 11 | 1.10 | The behavior is undefined if neither the converter
                element nor the disableConversion element
                has been specified. | false | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1993 | 11 | 1.10 | The Convert annotation should not be used to specify
                conversion of the following: | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1993.1 | 11 | 1.10 | Id attributes(including the attributes of
                        embedded ids and derived identities) | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1993.2 | 11 | 1.10 | version attributes | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1993.3 | 11 | 1.10 | relationship attributes | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1993.4 | 11 | 1.10 | attributes explicitly annotated (or designated
                        via XML) as Enumerated | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1993.5 | 11 | 1.10 | attributes explicitly annotated (or designated
                        via XML) as Temporal. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1994 | 11 | 1.10 | The Convert annotation may be applied to a basic
                attribute or to an element collection of basic
                type (in which case the converter is applied to the elements of
                the collection). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1995 | 11 | 1.10 | In these cases, the attributeName element must not be
                specified. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1996 | 11 | 1.10 | The Convert annotation may be applied to an embedded
                attribute or to a map collection attribute
                whose key or value is of embeddable type (in which case the
                converter is applied to the specified
                attribute of the embeddable instances contained in the
                collection). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1997 | 11 | 1.10 | In these cases, the attributeName element must be
                specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1998 | 11 | 1.10 | To override conversion mappings at multiple levels of
                embedding, a dot (".") notation form must
                be used in the attributeName element to indicate an attribute
                within an embedded attribute. The value of
                each identifier used with the dot notation is the name of the
                respective embedded field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1999 | 11 | 1.10 | When the Convert annotation is applied to a map
                containing instances of embeddable classes, the
                attributeName element must be specified, and "key." or "value."
                must be used to prefix the name of the
                attribute that is to be converted in order to specify it as part
                of the map key or map value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2000 | 11 | 1.10 | When the Convert annotation is applied to a map to
                specify conversion of a map key of basic
                type, "key" must be used as the value of the attributeName
                element to specify that it is the map key
                that is to be converted. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2001 | 11 | 1.10 | The Convert annotation may be applied to an entity
                class that extends a mapped superclass to
                specify or override a conversion mapping for an inherited basic
                or embedded attribute. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2002 | 11 | 1.11 | The Converts annotation is used to group Convert
                annotations. Multiple converters must not be
                applied
                to the same basic attribute. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1116 | 11 | 1.12 | For the SINGLE_TABLE mapping strategy, and typically
                also for the JOINED strategy, the
                persistence provider will use a type discriminator column. The
                supported discriminator types are defined
                by the DiscriminatorType enum: STRING, CHAR, INTEGER. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1126 | 11 | 1.12 | The DiscriminatorColumn annotation is used to define
                the discriminator column for the
                SINGLE_TABLE and JOINED inheritance mapping strategies. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2003 | 11 | 1.12 | The strategy and the discriminator column are only specified in
                the root of an entity class hierarchy or
                subhierarchy in which a different inheritance strategy is
                applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2004 | 11 | 1.12 | The combination of inheritance strategies within a single entity
                inheritance hierarchy is not defined by
                this specification. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1126.1 | 11 | 1.12 | The DiscriminatorColumn annotation can be specified on
                an entity class (including on an
                abstract entity class). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1126.2 | 11 | 1.12 | If the DiscriminatorColumn annotation is missing, and a
                discriminator column is required, the
                name of the discriminator column defaults to "DTYPE" and the
                discriminator type to STRING. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1126.2 | 11 | 1.12 | The type of the discriminator column, if specified in
                the optional columnDefinition element,
                must be consistent with the discriminator type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1126.3 | 11 | 1.13 | The DiscriminatorValue annotation is used to specify
                the value of the discriminator column for
                entities of the given type. The DiscriminatorValue annotation
                can only be specified on a concrete entity
                class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1126.4 | 11 | 1.13 | If the DiscriminatorValue annotation is not specified
                and a discriminator column is used, a
                provider-specific function will be used to generate a value
                representing the entity type. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1118 | 11 | 1.13 | The inheritance strategy and the discriminator column are only
                specified in the root of an entity class
                hierarchy or subhierarchy in which a different inheritance
                strategy is applied. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2005 | 11 | 1.13 | The discriminator value, if not defaulted, should be specified
                for each entity class in the hierarchy. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2006 | 11 | 1.13 | The discriminator value must be consistent in type with the
                discriminator type of the specified or
                defaulted discriminator column. If the discriminator type is an
                integer, the value specified must be
                able to be converted to an integer value | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2513 | 11 | 1.13 | If the DiscriminatorType is STRING, the discriminator value default is the entity name. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2007 | 11 | 1.14 | The ElementCollection annotation defines a collection of
                instances of a basic type or embeddable class. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2008 | 11 | 1.14 | The ElementCollection annotation (or equivalent XML element)
                must be specified if the collection is to
                be mapped by means of a collection table | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1248 | 11 | 1.14 | The basic or embeddable class that is the element type
                of the collection. Optional only if the
                collection field or property is defined using Java generics.
                Must be specified otherwise. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1249 | 11 | 1.14 | The EAGER strategy is a requirement on the persistence
                provider runtime that the collection
                elements must be eagerly fetched. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1127 | 11 | 1.15 | The Embeddable annotation is used to specify a class
                whose instances are stored as an intrinsic
                part of an owning entity and share the identity of the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2009 | 11 | 1.16 | The Embedded annotation is used to specify | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2009.1 | 11 | 1.16 | a persistent field | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2009.2 | 11 | 1.16 | property of an entity | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2009.3 | 11 | 1.16 | embeddable class whose value is an instance of
                        an embeddable class. If the
                        embeddable
                        class is used as a primary key, the EmbeddedId rather
                        than the Embedded annotation is used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1129 | 11 | 1.16 | The Embedded annotation may be used in an entity class
                when it is using a shared embeddable
                class. The entity may override the column mappings declared
                within the embeddable class to apply to its
                own entity table. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1128 | 11 | 1.16 | Each of the persistent properties or fields of the
                embedded object is mapped to the database
                table. Only Basic, Column, Serialized, and Lob mapping
                annotations may be used to map embedded object. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2010 | 11 | 1.16 | Each of the persistent properties or fields of the
                embedded object is mapped to the database
                table for the entity or embeddable class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2011 | 11 | 1.16 | The embeddable class must be annotated as Embeddable.
                Use of the Embedded annotation is not
                required | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2012 | 11 | 1.16 | Implementations are not required to support embedded objects
                that are mapped across more than one table
                (e.g., split across primary and secondary tables or multiple
                secondary tables). | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1063 | 11 | 1.17 | The EmbeddedId annotation is applied to a persistent
                field or property of an entity class or
                mapped superclass to denote a composite primary key that is an
                embeddable class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2013 | 11 | 1.17 | The embeddable class must be annotated as Embeddable. Note that
                theId annotation is not used in the
                embeddable class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2014 | 11 | 1.17 | Relationship mappings defined within an embedded id class are
                not supported. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1064 | 11 | 1.17 | There must be only one EmbeddedId annotation and no Id
                annotation when the EmbeddedId
                annotation is used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1251 | 11 | 1.17 | The AttributeOverride annotation may be used to
                override the column mappings declared within
                the embeddable class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2015 | 11 | 1.17 | The MapsId annotation may be used in conjunction with
                the EmbeddedId annotation to specify a
                derived primary key. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2016 | 11 | 1.17 | If the entity has a derived primary key, the AttributeOverride
                annotation may only be used to override
                those attributes of the embedded id that do not correspond to
                the relationship to the parent entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1090.1 | 11 | 1.18 | The Enumerated annotation specifies that a persistent
                property or field should be persisted as
                enumerated type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2017 | 11 | 1.18 | The Enumerated annotation may be used in conjunction
                with the Basic annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2018 | 11 | 1.18 | The Enumerated annotation may be used in conjunction
                with the ElementCollection annotation when
                the element collection value is of basic type. If the element
                collection is a Map, this applies to the
                map value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1090.2 | 11 | 1.18 | An enum can be mapped as either string or integer. The
                EnumType enum defines the mapping for
                enumerated types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2019 | 11 | 1.18 | Mapping of enum values that contain state is not
                supported. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1090.3 | 11 | 1.18 | If the enumerated type is not specified or the
                Enumerated annotation is not used, the
                enumerated type is assumed to be ORDINAL unless a converter is
                being applied.. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2020 | 11 | 1.19 | The ForeignKey annotation is used to specify the handling of
                foreign key constraints when schema generation is in effect. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2490 | 11 | 1.19 | If this annotation is not specified, the persistence
                provider’s default foreign key strategy
                will be used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2491 | 11 | 1.19 | The enum values have the following semantics: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2491.1 | 11 | 1.19 | A value of CONSTRAINT will cause the
                        persistence provider to generate a foreign key
                        constraint. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2491.2 | 11 | 1.19 | A value of NO_CONSTRAINT will result in no
                        constraint being generated. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2491.3 | 11 | 1.19 | A value of PROVIDER_DEFAULT will result in the
                        provider's default behavior (which may or may not result
                        in the generation of a constraint for any given join
                        column or set of join columns). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2021 | 11 | 1.19 | The syntax used in the foreignKeyDefinition element
                should follow the SQL syntax used by the
                target database for foreign key constraints | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2492 | 11 | 1.19 | If the ForeignKey annotation is specified with a
                ConstraintMode value of CONSTRAINT, but the foreignKeyDefinition
                element is not specified, the provider will generate a foreign
                key constraint whose update and delete actions it determines
                most appropriate for the join column(s) to which the foreign key
                constraint is applied | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1057 | 11 | 1.20 | The GeneratedValue annotation provides for the
                specification of generation strategies
                for the value of primary keys. The GeneratedValue annotation may
                be applied
                to a primary key property or mapped superclass in conjunction
                with the Id annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2023 | 11 | 1.20 | The use of the GeneratedValue annotation is only
                required to be supported for simple primary
                keys. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2024 | 11 | 1.20 | Use of the GeneratedValue annotation is not supported
                for derived primary keys. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1051 | 11 | 1.20 | The types of the primary key generation are defined by
                the GenerationType enum. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1052 | 11 | 1.20 | The TABLE generator type value indicates that
                        the persistence provider must assign
                        primary keys for the entity using an underlying database
                        table to ensure uniqueness. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1053 | 11 | 1.20 | The SEQUENCE and IDENTITY values specify the
                        use of a database sequence or identity
                        column, respectively. Note that SEQUENCE and IDENTITY
                        are not portable across all databases. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1055 | 11 | 1.20 | The AUTO value indicates that the persistence
                        provider should pick an appropriate
                        strategy for the particular database. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1253 | 11 | 1.20 | The primary key generation strategy is that the
                persistence provider must generate the
                annotated entity primary key.
                The name of the primary key generator to be used as specified in
                the
                SequenceGenerator or TableGenerator annotation. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1066 | 11 | 1.21 | The Id annotation may be applied in an entity or mapped
                superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1049 | 11 | 1.21 | The Id annotation specifies the primary key property or
                field of an entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2025 | 11 | 1.21 | The field or property to which the Id annotation is
                applied should be one of the following
                types | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2025.1 | 11 | 1.21 | any Java primitive type | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2025.2 | 11 | 1.21 | any primitive wrapper type | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2025.3 | 11 | 1.21 | java.lang.String | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2025.4 | 11 | 1.21 | java.util.Date | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2025.5 | 11 | 1.21 | java.sql.Date | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2025.6 | 11 | 1.21 | java.math.BigDecimal | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2025.7 | 11 | 1.21 | java.math.BigInteger | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1050 | 11 | 1.21 | The mapped column for the primary key of the entity is
                assumed to be the primary
                key of the primary table. If no Column annotation is specified,
                the primary key column name is assumed
                to be the name of the identifier property or field. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1065 | 11 | 1.22 | The IdClass annotation is applied to an entity class or
                a mapped superclass to specify a
                composite primary key class that is mapped to multiple fields or
                properties of the entity. The names of
                the fields or properties in the primary key class and the
                primary key fields or properties of the entity
                must correspond and their types must match. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2026 | 11 | 1.23 | The Index annotation is used in schema generation. Note
                that it is not necessary to specify an
                index
                for a primary key, as the primary key index will be created
                automatically, however, the Index annotation
                may be used to specify the ordering of the columns in the index
                for the primary key. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2027 | 11 | 1.23 | The persistence provider must observe the specified
                ordering of the columns. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2028 | 11 | 1.23 | If ASC or DESC is not specified, ASC (ascending order)
                is assumed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2029 | 11 | 1.24 | The Inheritance annotation defines the inheritance strategy to
                be used for an entity class hierarchy. It
                is specified on the entity class that is the root of the entity
                class hierarchy. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1119 | 11 | 1.24 | if no inheritance type is specified for an entity class
                hierarchy, the SINGLE_TABLE mapping
                strategy is used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2030 | 11 | 1.24 | Support for the combination of inheritance strategies
                is not required by this specification. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1112 | 11 | 1.24 | The three inheritance mapping strategies are: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1113 | 11 | 1.24 | single table per class hierarchy | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1115 | 11 | 1.24 | joined subclass | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1114 | 11 | 1.24 | table per concrete class strategies. Support
                        for the TABLE_PER_CLASS mapping
                        strategy
                        is optional in this release. | false | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1038 | 11 | 1.25 | The JoinColumn annotation is used to specify a column
                for joining an entity association
                or element collection. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1042 | 11 | 1.25 | If the JoinColumn annotation itself is defaulted, a
                single join column is assumed and the
                default values apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1039 | 11 | 1.25 | The name annotation element defines the name of the
                foreign key column. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2031 | 11 | 1.25 | The remaining annotation elements (other than
                referencedColumnName) refer to this column and
                have the same semantics as for the Column annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1040 | 11 | 1.25 | If the referencedColumnName element is missing, the
                foreign key is assumed to refer to the
                primary key of the referenced table. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1047 | 11 | 1.25 | Support for referenced columns that are not the primary
                key of the referenced table is
                optional. Applications that use such mappings will not be
                portable. | false | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2493 | 11 | 1.25 | The foreignKey annotation element is used to specify or
                control the generation of a foreign key constraint when schema
                generation is in effect. If both this element and the foreignKey element of any
                of the JoinColumn elements referenced by the value element are specified, the behavior is undefined. If no foreignKey annotation element is specified in either location, the persistence
                provider’'s default foreign key strategy will apply. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2494 | 11 | 1.25 | If there is more than one join column, a JoinColumn
                annotation must be specified for each join column using the
                JoinColumns annotation. Both the name and the
                referencedColumnName elements must be specified in each such
                JoinColumn annotation. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1041 | 11 | 1.25 | If the name annotation element is missing, or if no
                JoinColumn annotation is specified, the
                join columns are assumed to have the same names as the primary
                key columns of the referenced table. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1043 | 11 | 1.25 | if a single join column is used | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1044 | 11 | 1.25 | name default - The concatenation of the following: the
                        name of the referencing relationship
                        property or field of the referencing entity; "_"; the
                        name of the referenced primary key
                        column. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1043.1 | 11 | 1.25 | name default - The concatenation of the following: If
                        there is no such referencing
                        relationship
                        property or field in the entity, or if the join is for
                        an element collection, the join
                        column
                        name is formed as the concatenation of the following:
                        the name of the entity; "_"; the name
                        of
                        the referenced primary key column. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1045 | 11 | 1.25 | referencedColumnName default - If the
                        referencedColumnName element is missing, The same name
                        as
                        the primary key column of the referenced table. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1046 | 11 | 1.25 | If there is more than one join column, a JoinColumn
                annotation must be specified for each join
                column using the JoinColumns annotation. Both the name and
                referencedColumnName elements must be
                specified in each such JoinColumn annotation.
                annotation. | false | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1048 | 11 | 1.26 | Composite foreign keys are supported by means of the
                JoinColumns annotation. The JoinColumns
                annotation groups JoinColumn annotations for the same
                relationship. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2032 | 11 | 1.26 | When the JoinColumns annotation is used, both the name
                and the referencedColumnName
                elements must be specified in each of the grouped JoinColumn
                annotations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2495 | 11 | 1.26 | The foreignKey annotation element is used to specify or
                control the generation of a foreign key constraint when schema
                generation is in effect. If this element is not specified, the
                persistence provider’s default foreign key strategy will apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1097 | 11 | 1.27 | A JoinTable annotation is used in the mapping of
                associations. A JoinTable annotation is
                specified on the owning side of the association. If the
                JoinTable annotation is not explicitly specified
                for the mapping of a many-to-many or unidirectional one-to-many
                relationship, the default values of the
                annotation elements apply. The name of the JoinTable is assumed
                to be the tables names of the associated
                primary tables concatenated together (owning side first) using
                an underscore. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2505 | 11 | 1.27 | The foreignKey element is used to specify or control the generation of a foreign key constraint for the columns corresponding to the joinColumns element when table generation is in effect. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2505.1 | 11 | 1.28 | If both this element and the foreignKey element of any of the joinColumns elements are specified, the behavior is undefined. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2505.2 | 11 | 1.28 | If no foreignKey annotation element is specified in either location, the persistence provider's default foreign key strategy will apply. The inverseForeignKey element applies to the generation of a foreign key constraint for the columns corresponding to the inverseJoinColumns element, and similar rules apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1089 | 11 | 1.28 | A Lob annotation specifies that a persistent property
                or field should be persisted as a large
                object to a database-supported large object type. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2033 | 11 | 1.28 | The Lob annotation may be used in conjunction with the
                Basic annotation or with the
                ElementCollection annotation when the element collection value
                is of basic type. If the element
                collection is a Map, this applies to the map value. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2034 | 11 | 1.28 | A Lob may be either a binary or character type. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2035 | 11 | 1.28 | The Lob type is inferred from the type of the
                persistent field or property and, except for
                string and character types, defaults to Blob. | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1092 | 9 | 1.25 | Multiple operations may be included in the [cascade]
                set. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1098 | 11 | 1.29 | A ManyToMany annotation defines a many-valued
                association with many-to-many multiplicity. If
                the collection is defined using generics to specify the element
                type, the associated target entity
                class does not need to be specified; otherwise it must be
                specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1254 | 11 | 1.29 | Every many-to-many association has two sides, the
                owning side and the non-owning, or inverse,
                side. If the association is bidirectional, either side may be
                designated as the owning side.
                The join table for the relationship, if not defaulted, is
                specified on the owning side. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1099 | 11 | 1.29 | Every many-to-many association has two sides, the
                owning side and the non-owning or inverse
                side. The join table for the relationship, if not defaulted, is
                specified on the owning side. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1256 | 11 | 1.29 | If the relationship is bidirectional, the non-owning
                side must use the mappedBy element of the
                ManyToMany annotation to specify the relationship field or
                property of the owning side. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1255 | 11 | 1.29 | The ManyToMany annotation may be used within an
                embeddable class contained within an entity
                class to specify a relationship to a collection of entities. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2036 | 11 | 1.29 | The ManyToMany annotation must not be used within an embeddable
                class used in an element collection | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2037 | 11 | 1.29 | If the relationship is bidirectional and the entity
                containing the embeddable class is the owner of the
                relationship, the non-owning side must use the
                mappedBy element of the ManyToMany annotation to specify the
                relationship field or property of the
                embeddable class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2037.1 | 11 | 1.29 | The dot (".") notation syntax must be used in the
                        mappedBy element to indicate the
                        relationship
                        attribute within the embedded attribute. The value of
                        each identifier used with the dot
                        notation
                        is the name of the respective embedded
                        field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1093 | 11 | 1.29 | The value cascade=ALL is equivalent to
                cascade={PERSIST, MERGE, REMOVE, REFRESH, DETACH}. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2038 | 11 | 1.29 | When the collection is a java.util.Map, the cascade
                element applies to the map value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2039 | 11 | 1.29 | The EAGER strategy is a requirement on the persistence
                provider runtime that the associated
                entity must be eagerly fetched. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2040 | 11 | 1.29 | The LAZY strategy is a hint to the persistence provider
                runtime that the associated entity
                should be fetched lazily when it is first accessed. The
                implementation is permitted to eagerly fetch
                associations for which the LAZY strategy hint has been
                specified. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1090 | 11 | 1.30 | The ManyToOne annotation defines a single-valued
                association to another entity class that has a
                many-to-one multiplicity. It is not normally necessary to
                specify the name of the associated target
                entity explicitly since it can usually be inferred from the type
                of the object being referenced. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1257 | 11 | 1.30 | The ManyToOne annotation may be used within an
                embeddable class to specify a relationship from
                the embeddable class to an entity class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1258 | 11 | 1.30 | If the relationship is bidirectional, the non-owning OneToMany
                entity side must use the mappedBy element
                of the OneToMany annotation to specify the relationship field or
                property of the embeddable field or
                property on the owning side of the relationship. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1259 | 11 | 1.30 | The dot (".") notation syntax must be used in the mappedBy
                element to indicate the relationship
                attribute within the embedded attribute. The value of each
                identifier used with the dot notation is the
                name of the respective embedded field or
                property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1091 | 11 | 1.30 | The operations that can be cascaded are defined by the
                CascadeType enum | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2041 | 11 | 1.30 | The EAGER strategy is a requirement on the persistence
                provider runtime that the associated
                entity must be eagerly fetched. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2042 | 11 | 1.30 | The LAZY strategy is a hint to the persistence provider
                runtime that the associated entity
                should be fetched lazily when it is first accessed. The
                implementation is permitted to eagerly fetch
                associations for which the LAZY strategy hint has been
                specified. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:1100 | 11 | 1.31 | The MapKey annotation is used to specify the map key
                for associations of type java.util.Map.
                When the mapkey is itself the primary key or a persistent field
                or property of the entity that is the
                value of the map. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1101 | 11 | 1.31 | The name element designates the name of the persistent
                field or
                property of the associated entity that is used as the map key.
                If name element is not specified,the primary key of the
                associated entity is used as the map key. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1102 | 11 | 1.31 | If the primary key is a composite primary key and is
                mapped as IdClass, an instance of the
                primary key class is used as the key. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2043 | 11 | 1.31 | If a persistent field or property other than the
                primary key is used as a map key, it is
                expected to be unique within the context of the relationship. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2044 | 11 | 1.31 | The MapKeyClass annotation is not used when MapKey is
                specified and vice versa. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2045 | 11 | 1.32 | The map key can be | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2045.1 | 11 | 1.32 | a basic type | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2045.2 | 11 | 1.32 | an embeddable class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2045.3 | 11 | 1.32 | an entity | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2046 | 11 | 1.32 | If the map is specified using Java generics, the
                MapKeyClass annotation and associated type
                need not be specified; otherwise they must be specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2047 | 11 | 1.32 | The MapKeyClass annotation is used in conjunction
                with | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2047.1 | 11 | 1.32 | ElementCollection | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2047.2 | 11 | 1.32 | one of the collection-
                        valued relationship annotations (OneToMany). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2047.3 | 11 | 1.32 | one of the collection-
                        valued relationship annotations (ManyToMany). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2048 | 11 | 1.32 | The MapKey annotation is not used when MapKeyClass is
                specified and vice versa. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1261 | 11 | 1.33 | The MapKeyColumn annotation is used to specify the
                mapping for the key column of a map whose
                map key is a basic type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2049 | 11 | 1.33 | If the name element is not specified, it defaults to
                the concatenation of the following:
                the name of the referencing relationship field or property; "_";
                "KEY". | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2050 | 11 | 1.33 | If no MapKeyColumn annotation is specified, the default
                values in Table apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2051 | 11 | 1.34 | The MapKeyEnumerated annotation is used to specify the
                enum type for a map key whose basic type
                is an enumerated type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2052 | 11 | 1.34 | The MapKeyEnumerated annotation can be applied to an
                element collection or relationship of type
                java.util.Map, in conjunction with the | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2052.1 | 11 | 1.34 | ElementCollection annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2052.2 | 11 | 1.34 | OneToMany annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2052.3 | 11 | 1.34 | ManyToMany annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2053 | 11 | 1.34 | If the map is specified using Java generics, the
                MapKeyClass annotation and associated
                type need not be specified; otherwise they must be specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2054 | 11 | 1.34 | If the enumerated type is not specified or the
                MapKeyEnumerated annotation is not used, the
                enumerated type is assumed to be ORDINAL. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2055 | 11 | 1.35 | The MapKeyJoinColumn annotation is used to specify a
                mapping to an entity that is a map key. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2056 | 11 | 1.35 | The map key join column is in the | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2056.1 | 11 | 1.35 | collection table of the target entity that is
                        used to represent
                        the map | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2056.2 | 11 | 1.35 | join table of the target entity that is used to
                        represent the map | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2056.3 | 11 | 1.35 | table of the target entity that is used to
                        represent the map | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2057 | 11 | 1.35 | If no MapKeyJoinColumn annotation is specified, a
                single join column is assumed and the default
                values described below (and in Table 29) apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2058 | 11 | 1.35 | The name annotation element defines the name of the
                foreign key column. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2059 | 11 | 1.35 | The remaining annotation elements (other than
                referencedColumnName) refer to this column. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2060 | 11 | 1.35 | If there is a single map key join column, and if the
                name annotation member is missing, the map
                key join column name is formed as the concatenation of the
                following: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2060.1 | 11 | 1.35 | the name of the referencing relationship
                        property or field of the referencing entity; "_"; "KEY". | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2060.2 | 11 | 1.35 | the name of the referencing relationship
                        property or field of the referencing embeddable; "_";
                        "KEY". | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2061 | 11 | 1.35 | If the referencedColumnName element is missing, the
                foreign key is assumed to refer to the
                primary key of the referenced table. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2062 | 11 | 1.35 | Support for referenced columns that are not primary key
                columns of the referenced table is
                optional. Applications that use such mappings will not be
                portable. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2506 | 11 | 1.35 | The foreignKey element is used to specify or control the generation of a foreign key constraint for the map key join column when table generation is in effect. If the foreignKey element is not specified, the persistence provider’s default foreign key strategy will be used. | false | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1262 | 11 | 1.35 | If there is more than one map key join column, a
                MapKeyJoinColumn annotation must be specified
                for each join column using the MapKeyJoinColumns annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1263 | 11 | 1.35 | Both the name and the referencedColumnName elements
                must be specified in each such
                MapKeyJoinColumn annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2063 | 11 | 1.36 | Composite map keys referencing entities are supported
                by means of the MapKeyJoinColumns
                annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1264 | 11 | 1.36 | When the MapKeyJoinColumns annotation is used, both the
                name and the referencedColumnName
                elements must be specified in each of the grouped
                MapKeyJoinColumn annotations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2508 | 11 | 1.36 | The foreignKey element is used to specify or control the generation of a foreign key constraint for the columns corresponding to the MapKeyJoinColumn elements referenced by the value element when table generation is in effect. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2508.1 | 11 | 1.36 | If both this element and the foreignKey element of any of the MapKeyJoinColumn elements are specified, the behavior is undefined. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2508.2 | 11 | 1.36 | If no foreignKey annotation element is specified in either location, the persistence provider's default foreign key strategy will apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2064 | 11 | 1.37 | The MapKeyTemporal annotation is used to specify the
                temporal type for a map key whose basic
                type is a temporal type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2065 | 11 | 1.37 | The MapKeyTemporal annotation can be applied to an
                element collection or relationship of type
                java.util.Map, in conjunction with the | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2065.1 | 11 | 1.37 | ElementCollection annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2065.2 | 11 | 1.37 | OneToMany annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2065.3 | 11 | 1.37 | ManyToMany annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2066 | 11 | 1.37 | If the map is specified using Java generics, the
                MapKeyClass annotation and associated type
                need not be specified; otherwise they must be specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1130 | 11 | 1.38 | The MappedSuperclass annotation designates a class
                whose mapping information is applied to the
                entities that inherit from it. A mapped superclass has no
                separate table defined for it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1131 | 11 | 1.38 | A class designated with the MappedSuperclass annotation
                can be mapped in the same way as an
                entity except that the mappings will apply only to its
                subclasses since no table exists for the mapped
                superclass itself. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1132 | 11 | 1.38 | When applied to the subclasses the inherited mappings
                will apply in the context of the subclass
                tables. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1133 | 11 | 1.38 | Mapping information may be overridden in such
                subclasses by using the Mapping information may
                be overridden in such subclasses by using the AttributeOverride,
                AttributeOverrides,
                AssociationOverride,and AssociationOverrides annotations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2067 | 11 | 1.39 | The MapsId annotation is used to designate a ManyToOne or
                OneToOne relationship attribute that provides
                the mapping for | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2067.1 | 11 | 1.39 | an EmbeddedId primary key | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2067.2 | 11 | 1.39 | an attribute within an EmbeddedId primary key | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2067.3 | 11 | 1.39 | a simple primary key of the parent entity | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2068 | 11 | 1.39 | The value element specifies the attribute within a
                composite key to which the relationship
                attribute corresponds. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2069 | 11 | 1.39 | If the entity’s primary key is of the same Java type as
                the primary key of the entity
                referenced by the relationship, the value attribute is not
                specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1250 | 11 | 1.39 | The Embedded annotation may be used to specify a
                persistent field or property of an entity or
                embeddable class whose value is an instance of an embedable
                class. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1095 | 11 | 1.40 | The OneToMany annotation defines a many-valued
                association with one-to-many multiplicity. If
                the Collection is defined using generics to specify the element
                type then the associated target entity
                class need not be specified; Otherwise it must be specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1096 | 11 | 1.40 | Unidirectional one-to-many relationships may be
                implemented using one-to-many foreign key
                mappings. | true | 
 | true | technology | removed | true | 
| PERSISTENCE:SPEC:1265 | 11 | 1.40 | The OneToMany annotation may be used within an
                embeddable class contained within an entity
                class to specify a relationship to a collection of entities. If
                the relationship is bidirectional, the
                mappedBy element must be used to specify the relationship field
                or property of the entity that is the
                owner of the relationship. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2070 | 11 | 1.40 | The OneToMany annotation must not be used within an
                embeddable class used in an element
                collection. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2071 | 11 | 1.40 | When the collection is a java.util.Map, the cascade
                element and the orphanRemoval element
                apply to the map value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2072 | 11 | 1.40 | If orphanRemoval is true and an entity that is the target of the
                relationship is removed from the
                relationship (either by removal from the collection or by
                setting the relationship to null), the remove
                operation will be applied to the entity being orphaned. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2073 | 11 | 1.40 | If the entity being orphaned is a detached, new, or
                removed entity, the semantics of
                orphanRemoval do not apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2074 | 11 | 1.40 | If orphanRemoval is true and the remove operation is applied to
                the source entity, the remove
                operation will be cascaded to the relationship target in
                accordance with the rules of section 3.2.3,
                (and
                hence it is not necessary to specify cascade=REMOVE for the
                relationship)[ | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2075 | 11 | 1.40 | If the parent is detached or new or was previously removed
                before the orphan was associated with it, the
                remove operation is not applied to the entity being orphaned. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2076 | 11 | 1.40 | The remove operation is applied at the time of the
                flush operation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1266 | 11 | 1.40 | Portable applications must otherwise not depend upon a specific
                order of removal, and must not reassign
                an entity that has been orphaned to another relationship or
                otherwise attempt to persist it. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2077 | 11 | 1.40 | The default mapping for unidirectional one-to-many
                relationships uses a join table, | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2078 | 11 | 1.40 | Unidirectional one-to-many relationships may be
                implemented using one-to-many foreign
                key mappings, using the JoinColumn and JoinColumns annotations. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1094 | 11 | 1.41 | The OneToOne annotation defines a single-valued
                association to another entity class that has a
                one-to-one multiplicity. It is not normally necessary to specify
                the name of the associated target
                entity explicitly since it can usually be inferred from the type
                of the object being referenced. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2079 | 11 | 1.41 | If the relationship is bidirectional, the mappedBy element must
                be used to specify the relationship
                field or property of the entity that is the owner of the
                relationship. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1267 | 11 | 1.41 | The OneToOne annotation may be used within an
                embeddable class to specify a relationship from
                the embeddable class to an entity class. If the relationship is
                bidirectional and the entity containing
                the embeddable class is on the owning side of the relationship,
                the non-owning side must use the
                mappedBy element of the OneToOne annotation to specify the
                relationship field or property of the
                embeddable class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2080 | 11 | 1.41 | The dot (".") notation syntax must be used in the mappedBy
                element to indicate the relationship
                attribute within the embedded attribute. The value of each
                identifier used with the dot notation is the
                name of the respective embedded field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2081 | 11 | 1.41 | If orphanRemoval is true and an entity that is the target of the
                relationship is removed from the
                relationship (by setting the relationship to null), the remove
                operation will be applied to the entity
                being orphaned. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2082 | 11 | 1.41 | If the entity being orphaned is a detached, new, or
                removed entity, the semantics of
                orphanRemoval do not apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2083 | 11 | 1.41 | If orphanRemoval is true and the remove operation is
                applied to the source entity, the remove
                operation will be cascaded to the relationship target in
                accordance with the rules of section 3.2.3,
                (and
                hence it is not necessary to specify cascade=REMOVE for the
                relationship) | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2084 | 11 | 1.41 | If the parent is detached or new or was previously
                removed before the orphan was associated
                with it, the remove operation is not applied to the entity being
                orphaned. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2085 | 11 | 1.41 | The remove operation is applied at the time of the
                flush operation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2086 | 11 | 1.41 | Portable applications must otherwise not depend upon a
                specific order of removal, and must not
                reassign an entity that has been orphaned to another
                relationship or otherwise attempt to persist it. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:1103 | 11 | 1.42 | The OrderBy annotation specifies the ordering the
                elements of a collection-valued association
                or element collection are to have when the association or
                collection is retrieved. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1104 | 11 | 1.42 | The syntax of the value ordering element is an
                orderby_list, as follows: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1105 | 11 | 1.42 | orderby_list | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1106 | 11 | 1.42 | orderby_list::=orderby_item[,orderby_item]* | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1107 | 11 | 1.42 | orderby_item::=property_or_field_name[ASC|DESC] | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1108 | 11 | 1.42 | If orderby_list is not specified or if ASC or DESC is
                not specified, ASC (ascending order) is
                assumed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2087 | 11 | 1.42 | If the ordering element is not specified for an entity
                association, ordering by the primary key
                of the associated entity is assumed. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2088 | 11 | 1.42 | If the primary key is a composite primary key, the precedence of
                ordering among the attributes within
                the primary key is not futher defined. To assign such a
                precedence within these attributes, each of the
                individual attributes must be specified as an orderby_item. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1109 | 11 | 1.42 | A property or field name specified as an orderby_item
                must correspond to a basic persistent
                property or field of the associated class or embedded class
                within it. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1110 | 11 | 1.42 | The properties or fields used in the ordering must
                correspond to columns for which comparison
                operators are supported. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2089 | 11 | 1.42 | The dot (".") notation is used to refer to an attribute
                within an embedded attribute. The value
                of each identifier used with the dot notation is the name of the
                respective embedded field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1111 | 11 | 1.42 | The OrderyBy annnotation specifies the ordering of the
                elements of a collection-valued
                association or element collection at the point when the
                association is retrieved. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1268 | 11 | 1.42 | The OrderBy annotation may be applied to an element
                collection. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2090 | 11 | 1.42 | When OrderBy is applied to an element collection of
                basic type, the ordering will be by value
                of the basic objects and the property_or_field_name is not used | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2091 | 11 | 1.42 | In all other cases when OrderBy is applied to an
                element collection, the property_or_field_name
                must be specified. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2092 | 11 | 1.42 | When specifying an ordering over an element collection of
                embeddable type, the dot notation must be used
                to specify the attribute or attributes that determine the
                ordering. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2093 | 11 | 1.42 | The OrderBy annotation is not used when an order column
                is specified. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2094 | 11 | 1.43 | The persistence provider is responsible for maintaining
                the order upon retrieval and in the
                database. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2095 | 11 | 1.43 | The persistence provider is responsible for updating
                the ordering upon flushing to the database
                to reflect any | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2095.1 | 11 | 1.43 | insertion affecting the list | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2095.2 | 11 | 1.43 | deletion affecting the list | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2095.3 | 11 | 1.43 | reordering affecting the list | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2096 | 11 | 1.43 | The OrderColumn annotation may be specified on a | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2096.1 | 11 | 1.43 | one-to-many relationship | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2096.2 | 11 | 1.43 | many-to-many relationship | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2096.3 | 11 | 1.43 | on an element collection | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2097 | 11 | 1.43 | The OrderColumn annotation is specified on the side of
                the relationship that references the
                collection that is to be ordered. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2098 | 11 | 1.43 | The
                order column is not visible as part of the state of the entity
                or embeddable class. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2099 | 11 | 1.43 | The OrderBy annotation should be used for ordering that
                is visible as persistent state and
                maintained by the application | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2100 | 11 | 1.43 | The OrderBy annotation is not used when OrderColumn is
                specified. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2101 | 11 | 1.43 | If name is not specified, the column name is the
                concatenation of the following: the name of
                the referencing relationship property or field of the
                referencing entity or embeddable class; "_";
                "ORDER". | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2102 | 11 | 1.43 | The order column must be of integral type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2103 | 11 | 1.43 | The persistence provider must maintain a contiguous
                (non-sparse) ordering of the values of the
                order column when updating the association or element
                collection. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2104 | 11 | 1.43 | The order column value for the first element of the
                list must be 0. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1120 | 11 | 1.44 | The PrimaryKeyJoinColumn annotation specifies the
                primary key columns that are used as a
                foreign key to join to another table. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1121 | 11 | 1.44 | The PrimaryKeyJoinColumn annotated is used: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1122 | 11 | 1.44 | to join the primary table of an entity subclass
                        in the JOINED mapping strategy to
                        the
                        primary table of its superclass | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1121.1 | 11 | 1.44 | it is used within a SecondaryTable annotation
                        to join a secondary table to a
                        primary
                        table; | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1123 | 11 | 1.44 | in a OneToOne mapping in which the primary key
                        of the referencing entity is used as
                        a
                        foreign key to the referenced entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2509 | 11 | 1.44 | The foreignKey element is used to specify or control the generation of a foreign key constraint for the primary key join column when table generation is in effect. If the foreignKey element is not specified, the persistence provider’s default foreign key strategy will be used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1124 | 11 | 1.44 | If no PrimaryKeyJoinColumn annotation is specified for
                a subclass in the JOINED mapping
                strategy,
                the foreign key columns are assumed to have the same names as
                the primary key columns of the
                primary table of the superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1125 | 11 | 1.45 | Composite foreign keys are supported by means of the
                PrimaryKeyJoinColumns annotation | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2510 | 11 | 1.45 | The foreignKey element is used to specify or control the generation of a foreign key constraint for the columns corresponding to the PrimaryKeyJoinColumn elements referenced by the value element when table generation is in effect. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2510.1 | 11 | 1.45 | If both this element and the foreignKey element of any of the PrimaryKeyJoinColumn elements are specified, the behavior is undefined. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2510.2 | 11 | 1.45 | If no foreignKey annotation element is specified in either location, the persistence provider's default foreign key strategy will apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1272 | 11 | 1.46 | The SecondaryTable annotation is used to specify a
                secondary table for the annotated entity
                class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1273 | 11 | 1.46 | If no SecondaryTable annotation is specified, it is
                assumed that all persistent fields or
                properties of the entity are mapped to the primary table.
                Specifying one or more secondary tables
                indicates that the data for the entity class is stored across
                multiple tables. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1031 | 11 | 1.46 | If no primary key join columns are specified, the join
                columns are assumed to reference the
                primary key columns of the primary table, and have the same
                names and types as the referenced primary
                key columns of the primary table. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1274 | 11 | 1.46 | If no primary key join columns are specified, the join
                columns are assumed to reference the
                primary key columns of the primary table, and have the same
                names and types as the referenced primary
                key columns of the primary table. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2511 | 11 | 1.46 | The foreignKey element is used to specify or control the generation of a foreign key constraint for the columns corresponding to the pkJoinColumns element when table generation is in effect. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2511.1 | 11 | 1.46 | If both this element and the foreignKey element of any of the pkJoinColumns elements are specified,
                        the behavior is undefined. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2511.2 | 11 | 1.46 | If no foreignKey annotation element is specified in either location, the persistence provider's default foreign key strategy will apply. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2105 | 11 | 1.47 | The SecondaryTables annotation is used to specify
                multiple secondary tables for an entity. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1137 | 11 | 1.47 | A generator may be defined at either the package,
                class, method, or field level. The level
                at which it is defined will depend upon the desired visibility
                and sharing of the generator. No scoping
                or visibility rules are actually enforce
                d. However, it is good practice to define the generator at the
                level for which it will be used. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2106 | 11 | 1.48 | The SequenceGenerator annotation defines a primary key
                generator that may be referenced by
                name when a generator element is specified for the
                GeneratedValue annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2107 | 11 | 1.48 | A sequence generator may be specified on the | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2107.1 | 11 | 1.48 | entity class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2107.2 | 11 | 1.48 | on the primary key field | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2107.3 | 11 | 1.48 | on the primary key property | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2108 | 11 | 1.48 | The scope of the generator name is global to the
                persistence unit (across all generator types). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1134 | 9 | 1.44 | The SequenceGenerator annotation defines a primary key
                or id generator which may be referenced
                by name when annotation the id attribute. | true | 
 | true | technology | removed | false | 
| PERSISTENCE:SPEC:1135 | 11 | 1.48 | A generator may be defined at either the package,
                class, method, or field level. The level at
                which it is defined will depend upon the desired visibility and
                sharing of the generator. No scoping or
                visibility rules are actually enforced. However, it is good
                practice to define the generator at the
                level for which it will be used. | true | 
 | true | technology | removed | false | 
| PERSISTENCE:SPEC:1028 | 11 | 1.49 | The Table annotation specifies the primary table for
                the annotated entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2109 | 11 | 1.49 | Additional tables may be specified by using the
                SecondaryTable or SecondaryTables annotation | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2110 | 11 | 1.49 | When a joined inheritance strategy is used, the Table
                annotation is used to specify a primary
                table for the subclass-specific state if the default is not
                used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1028.1 | 11 | 1.49 | If no Table annotation is specified for an entity
                class, the default values defined in Table 42
                apply. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1136 | 11 | 1.50 | The TableGenerator annotation defines a primary key or
                id generator which may be referenced by
                name when when a generator element is specified for the
                GeneratedValue annotation. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2111 | 11 | 1.50 | A table generator may be specified on the | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2111.1 | 11 | 1.50 | entity class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2111.2 | 11 | 1.50 | primary key field | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2111.3 | 11 | 1.50 | property | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2112 | 11 | 1.50 | The scope of the generator name is global to the
                persistence unit (across all generator types). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2113 | 11 | 1.50 | The table element specifies the name of the table that
                is used by the persistence provider to
                store generated primary key values for entities. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1090.0 | 11 | 1.51 | The Temporal annotation must be specified for
                persistent fields or properties of type
                java.util.Date and java.util.Calendar unless a converter is
                being applied. It may only be specified for
                fields or properties of those types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2114 | 11 | 1.51 | The Temporal annotation may be used in conjunction with
                the | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2114.1 | 11 | 1.51 | Basic annotation | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2114.2 | 11 | 1.51 | Id annotation | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2114.3 | 11 | 1.51 | ElementCollection annotation (when the element
                        collection value is of such a
                        temporal
                        type). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2114.4 | 11 | 1.51 | If the element collection is a Map, this
                        applies to the map value. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1067 | 11 | 1.52 | The Transient annotation is used to annotate a property
                or field of an entity class, mapped
                superclass, or embeddable class. It specifies that the property
                or field is not persistent. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1036 | 11 | 1.53 | The UniqueConstraint annotation is used to specify that
                a unique constraint should be included
                in the generated DDL for a primary or secondary table. | false | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:1068 | 11 | 1.54 | The Version annotation specifies the version field or
                property of an entity class that serves a
                its optimistic lock value. The version is used to ensure
                integrity when performing the merge operation
                and for optimistic concurrency control. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2115 | 11 | 1.54 | Only a single Version property or field should be used
                per class; applications that use more
                than one Version property or field will not be portable. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2116 | 11 | 1.54 | The Version property should be mapped to the primary
                table for the entity class; applications
                that map the Version property to a table other than the primary
                table will not be portable. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2117 | 11 | 1.54 | The following types are supported for version
                properties: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2117.1 | 11 | 1.54 | int | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2117.2 | 11 | 1.54 | Integer | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2117.3 | 11 | 1.54 | short | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2117.4 | 11 | 1.54 | Short | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2117.5 | 11 | 1.54 | long | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2117.6 | 11 | 1.54 | Long | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2117.7 | 11 | 1.54 | Timestamp | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118 | 11 | 2 | If
                schema generation is in effect, the persistence provider must
                observe the mapping information specified
                by these annotations and their corresponding XML elements. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.1 | 11 | 2 | DiscriminatorColumn | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.2 | 11 | 2 | EmbeddedId | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.3 | 11 | 2 | Enumerated | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.4 | 11 | 2 | MapKeyEnumerated | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.24 | 11 | 2 | ForeignKey | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.5 | 11 | 2 | GeneratedValue | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.6 | 11 | 2 | Id | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.7 | 11 | 2 | Index | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.8 | 11 | 2 | Inheritance | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.9 | 11 | 2 | JoinColumn | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.10 | 11 | 2 | JoinTable | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.11 | 11 | 2 | Lob | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.12 | 11 | 2 | MapKeyColumn | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.13 | 11 | 2 | MapKeyJoinColumn | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.14 | 11 | 2 | OrderColumn | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.15 | 11 | 2 | PrimaryKeyJoinColumn | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.16 | 11 | 2 | SecondaryTable | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.17 | 11 | 2 | SequenceGenerator | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.18 | 11 | 2 | Table | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.19 | 11 | 2 | TableGenerator | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.20 | 11 | 2 | Temporal | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.21 | 11 | 2 | MapKeyTemporal | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.22 | 11 | 2 | UniqueConstraint | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2118.23 | 11 | 2 | Version | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2119 | 11 | 2.1.1 | By default, a table is created for every top-level
                entity and, by default, includes columns
                corresponding to the basic and embedded attributes of the entity
                and the foreign keys to the tables of
                related entities. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2120 | 11 | 2.1.1 | These columns include columns that result from the use
                of mapped superclasses, if any. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2121 | 11 | 2.1.1 | The SecondaryTable
                annotation, in conjunction with the use of the table element of
                the Column and Join-
                Column annotations, is used to override this mapping to
                partition the state of an entity across multiple
                tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2122 | 11 | 2.1.1 | The mapping of the columns of a table is controlled by
                the Column and JoinColumn annotations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2123 | 11 | 2.1.1 | When entity state in inherited from a mapped
                superclass, the AttributeOverride and
                AssociationOverride
                annotations may be used to further control the column-level
                mapping of inherited
                state. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2124 | 11 | 2.1.2 | The Inheritance annotation defines the inheritance
                strategy for an entity hierarchy. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2124.1 | 11 | 2.1.2 | The inheritance
                        strategy determines whether the table for a top-level
                        entity includes columns for entities
                        that
                        inherit
                        from the entity | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2124.2 | 11 | 2.1.2 | and whether it includes a discriminator
                        column | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2124.3 | 11 | 2.1.2 | or whether separate tables are created for each
                        entity type that inherits from the
                        top-level entity | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2125 | 11 | 2.1.3 | A secondary table is created to partition the mapping
                of entity state across multiple tables. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2126 | 11 | 2.1.4 | A collection table is created for the mapping of an
                element collection. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2127 | 11 | 2.1.4 | The Column, AttributeOverride, and AssociationOverride
                annotations may be used to override
                CollectionTable mappings | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2128 | 11 | 2.1.5 | By default, join tables are created for the mapping of
                many-to-many relationships and
                unidirectional
                one-to-many relationships. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2129 | 11 | 2.1.5 | Join tables may also be used to map bidirectional
                many-to-one/one-to-many associations,
                unidirectional
                many-to-one relationships, and one-to-one relationships (both
                bidirectional and unidirectional). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2130 | 11 | 2.1.5 | The AssociationOverride annotation may be used to
                override join table mappings. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2131 | 11 | 2.2 | In general, however, an implementation of this
                specification should conform to the “Standard Mapping from Java
                Types to JDBC Types” as defined by
                the JDBC specification | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2132 | 11 | 2.2 | Unless otherwise explicitly specified, however, VARCHAR
                and VARBINARY
                mappings should be used in preference to CHAR and BINARY
                mappings. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2133 | 11 | 2.2 | Applications that are
                sensitive to the exact database mappings that are generated
                should use the columnDefinition element
                of the Column annotation or include DDL files that specify how
                the database schema is to be generated. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2134 | 11 | 2.2.1 | The following elements of the Column annotation are
                used in schema generation: | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2134.1 | 11 | 2.2.1 | name | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2134.2 | 11 | 2.2.1 | unique | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2134.3 | 11 | 2.2.1 | nullable | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2134.4 | 11 | 2.2.1 | columnDefinition | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2134.5 | 11 | 2.2.1 | table | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2134.6 | 11 | 2.2.1 | length | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2134.7 | 11 | 2.2.1 | precision | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2134.8 | 11 | 2.2.1 | scale | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2135 | 11 | 2.2.1 | The AttributeOverride annotation may be used to
                override column mappings. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2136 | 11 | 2.2.2 | The MapKeyColumn annotation specifies the mapping for a
                key column of a map when the key is of
                basic type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2136.1 | 11 | 2.2.2 | name | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2136.2 | 11 | 2.2.2 | unique | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2136.3 | 11 | 2.2.2 | nullable | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2136.4 | 11 | 2.2.2 | columnDefinition | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2136.5 | 11 | 2.2.2 | table | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2136.6 | 11 | 2.2.2 | length | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2136.7 | 11 | 2.2.2 | precision | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2136.8 | 11 | 2.2.2 | scale | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2137 | 11 | 2.2.2 | The AttributeOverride annotation may be used to
                override column mappings. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2138 | 11 | 2.2.3 | The Enumerated annotations control whether string- or
                integer-valued
                columns are generated for basic attributes of enumerated types
                and therefore impact the default column
                mappings for these types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2138.1 | 11 | 2.2.3 | The Column annotations
                        may be used to further control the column mappings for
                        attributes of enumerated types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2138.2 | 11 | 2.2.3 | The MapKeyColumn annotations
                        may be used to further control the column mappings for
                        attributes of enumerated types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2139 | 11 | 2.2.3 | The MapKeyEnumerated annotations control whether
                string- or integer-valued
                columns are generated for basic attributes of enumerated types
                and therefore impact the default column
                mappings for these types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2139.1 | 11 | 2.2.3 | The Column annotations
                        may be used to further control the column mappings for
                        attributes of enumerated types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2139.2 | 11 | 2.2.3 | The MapKeyColumn annotations
                        may be used to further control the column mappings for
                        attributes of enumerated types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2140 | 11 | 2.2.4 | The Temporal annotations control whether date-, time-,
                or timestamp-value
                columns are generated for basic attributes of temporal types,
                and therefore impact the default column
                mappings for these types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2140.1 | 11 | 2.2.3 | The Column annotations
                        may be used to further control the column mappings for
                        attributes of temporal types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2140.2 | 11 | 2.2.3 | The MapKeyColumn annotations
                        may be used to further control the column mappings for
                        attributes of temporal types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2141 | 11 | 2.2.4 | The MapKeyTemporal annotations control whether date-,
                time-, or timestamp-value
                columns are generated for basic attributes of temporal types,
                and therefore impact the default column
                mappings for these types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2141.1 | 11 | 2.2.4 | The Column annotations
                        may be used to further control the column mappings for
                        attributes of temporal types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2141.2 | 11 | 2.2.4 | The MapKeyColumn annotations
                        may be used to further control the column mappings for
                        attributes of temporal types. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2142 | 11 | 2.2.6 | The OrderColumn annotation specifies the generation of
                a column that is used to maintain the
                persistent
                ordering of a list that is represented in an | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2142.1 | 11 | 2.2.6 | element collection | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2142.2 | 11 | 2.2.6 | one-to-many relationship | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2142.3 | 11 | 2.2.6 | many-to-many relationship | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2142.4 | 11 | 2.2.6 | name | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2142.5 | 11 | 2.2.6 | nullable | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2142.6 | 11 | 2.2.6 | columnDefinition | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2143 | 11 | 2.2.7 | The DiscriminatorColumn annotation may be used to
                control the mapping of the discriminator
                column | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2144 | 11 | 2.2.7 | A discriminator column is generated for the
                        SINGLE_TABLE mapping strategy | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2145 | 11 | 2.2.7 | and may optionally be generated by the provider
                        for use with the JOINED inheritance
                        strategy | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2146 | 11 | 2.2.8 | The Version annotation specifies the generation of a
                column to serve as an entity's optimistic
                lock. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2147 | 11 | 2.2.8 | The Column annotation may be used to further
                        control the column mapping for a version
                        attribute. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2148 | 11 | 2.3.1 | Use of the Id annotation results in the creation of a
                primary key consisting of the
                corresponding column or columns. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2149 | 11 | 2.3.1 | The Column annotation may be used to further
                        control the column mapping for an Id
                        attribute that is applied to a basic type. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2150 | 11 | 2.3.1 | If the Id column was defined in a mapped
                        superclass, the AttributeOverride
                        annotation may be used to control the column mapping. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2151 | 11 | 2.3.1 | The JoinColumn annotation may be used to
                        further control the column mappings for an Id
                        attribute that is applied to a relationship that
                        corresponds to a foreign key. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2152 | 11 | 2.3.1 | If the Id attribute was defined in a
                        mapped superclass, the AssociationOverride annotation
                        may be used to control the column
                        mapping. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2153 | 11 | 2.3.2 | Use of the EmbeddedId annotation results in the
                creation of a primary
                key consisting of the corresponding columns | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2154 | 11 | 2.3.2 | Use of the EmbeddedId annotation results in the
                        creation of a primary
                        key consisting of the corresponding columns | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2155 | 11 | 2.3.2 | The Column annotation may be used to control
                        the column mapping for an embeddable
                        class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2156 | 11 | 2.3.2 | If the
                        EmbeddedId attribute is defined in a mapped superclass,
                        the AttributeOverride annotation
                        may be used to control the column mappings. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2157 | 11 | 2.3.2 | If an EmbeddedId attribute corresponds to a
                        relationship attribute, the MapsId
                        annotation must be
                        used, and the column mapping is determined by the join
                        column for the relationship. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2158 | 11 | 2.3.3 | The GeneratedValue annotation indicates a primary key
                whose value is to be generated by the
                provider. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2159 | 11 | 2.3.2 | If a strategy is indicated, the provider must
                        use it if it is supported by the target
                        database. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2160 | 11 | 2.3.2 | specification of the AUTO strategy may result
                        in the provider creating a database
                        object for Id generation | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2161 | 11 | 2.3.2 | The GeneratedValue annotation may only be
                        portably used for simple (i.e.,
                        non-composite)
                        primary keys. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2162 | 11 | 2.4.1 | The JoinColumn annotation is typically used in
                specifying a foreign key mapping. In general,
                the foreign
                key definitions created will be provider-dependent and
                database-dependent. Applications that are
                sensitive to the exact mapping that is used should use the
                foreignKey element of the JoinColumn
                annotation or include DDL files that specify how the database
                schemas are to be generated. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2163 | 11 | 2.4.1 | name | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2164 | 11 | 2.4.1 | referencedColumnName | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2165 | 11 | 2.4.1 | unique | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2166 | 11 | 2.4.1 | nullable | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2167 | 11 | 2.4.1 | columnDefinition | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2168 | 11 | 2.4.1 | table | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2169 | 11 | 2.4.1 | foreignKey | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2170 | 11 | 2.4.1 | The AssociationOverride annotation may be used
                        to override relationship mappings. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2171 | 11 | 2.4.1 | The PrimaryKeyJoinColumn annotation is used to
                        join secondary tables and may be used
                        in the mapping of one-to-one relationships | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2172 | 11 | 2.4.2 | The MapKeyJoinColumn annotation is to specify foreign
                key mappings to entities that are map
                keys
                in map-valued element collections or relationships. In general,
                the foreign key definitions created
                should be expected to be provider-dependent and
                database-dependent. Applications that are sensitive to
                the exact mapping that is used should use the foreignKey element
                of the MapKeyJoinColumn
                annotation or include DDL files that specify how the database
                schemas are to be generated. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2173 | 11 | 2.4.2 | name | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2174 | 11 | 2.4.2 | referencedColumnName | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2175 | 11 | 2.4.2 | unique | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2176 | 11 | 2.4.2 | nullable | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2177 | 11 | 2.4.2 | columnDefinition | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2178 | 11 | 2.4.2 | table | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2179 | 11 | 2.4.2 | foreignKey | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2180 | 11 | 2.4.2 | The AssociationOverride annotation may be used
                        to override such mappings. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2181 | 11 | 2.4.3 | The PrimaryKeyJoinColumn annotation specifies that a
                primary key column is to be used as a
                foreign
                key. This annotation is used in the specification of the JOINED
                mapping strategy and for joining a
                secondary table to a primary table in a OneToOne relationship
                mapping. In general, the foreign key
                definitions
                created should be expected to be provider-dependent and
                database-dependent. Applications
                that are sensitive to the exact mapping that is used should use
                the foreignKey element of the
                PrimaryKeyJoinColumn
                annotation or include DDL files that specify how the database
                schemas are to
                be generated. | true | 
 | true | technology | active | false | 
| PERSISTENCE:SPEC:2182 | 11 | 2.4.4 | The ForeignKey annotation may be used within the | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2182.1 | 11 | 2.4.4 | JoinColumn | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2182.2 | 11 | 2.4.4 | JoinColumns | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2182.3 | 11 | 2.4.4 | MapKeyJoinColumn | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2182.4 | 11 | 2.4.4 | MapKeyJoinColumns | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2182.5 | 11 | 2.4.4 | PrimaryKeyJoinColumn | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2182.6 | 11 | 2.4.4 | PrimaryKeyJoinColumns | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2182.7 | 11 | 2.4.4 | CollectionTable | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2182.8 | 11 | 2.4.4 | JoinTable | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2182.9 | 11 | 2.4.4 | SecondaryTable,
                        AssociationOverride | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2182.10 | 11 | 2.4.4 | AssociationOverride | true | 
 | true | technology | active | true | 
| PERSISTENCE:SPEC:2189 | 11 | 2.5.1 | The SequenceGenerator annotation creates a database
                sequence to be used for Id generation. The
                use of generators is limited to those databases that support
                them. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2190 | 11 | 2.5.2 | The Index annotation generates an index consisting of
                the specified columns. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2191 | 11 | 2.5.2 | The ordering of thenames in the columnList
                        element specified in the Index annotation
                        must be observed by the provider when creating the
                        index. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2192 | 11 | 2.5.3 | The ordering of the column-
                Names specified in the UniqueConstraint annotation must be
                observed by the provider when creating
                the constraint. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2193 | 11 | 2.5.3 | The unique element is equivalent to the use of the
                UniqueConstraint annotation when only one
                column is to be included in the constraint | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2194 | 11 | 2.5.3 | Column | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2195 | 11 | 2.5.3 | JoinColumn | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2196 | 11 | 2.5.3 | MapKeyColumn | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2197 | 11 | 2.5.3 | MapKeyJoinColumn | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2198 | 12 | 1 | If the xml-mapping-metadata-complete subelement is specified,
                the complete set of mapping
                metadata for the persistence unit is contained in the XML
                mapping files for the persistence unit, and
                any
                persistence annotations on the classes are ignored. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2199 | 12 | 1 | If xml-mapping-metadata-complete is specified and XML elements
                are omitted, the default
                values apply. These default values are the same as the
                corresponding defaults when annotations are
                used, except in the cases specified in Section 12.2 below. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2200 | 12 | 1 | When the xml-mapping-metadata-complete element is specified, any
                metadata-complete attributes specified
                within the entity, mapped-superclass, and embeddable elements
                are ignored. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2201 | 12 | 1 | If the xml-mapping-metadata-complete subelement is not
                specified, the XML descriptor overrides the
                values set or defaulted by the use of annotations, as described
                below. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2202 | 12 | 1 | The Java Persistence 2.0 persistence provider must support use
                of the object/relational mapping schema
                defined in Enterprise JavaBeans, v. 3.0. Java Persistence API. | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2203 | 12 | 1 | The Java Persistence persistence provider must support use of | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2203.1 | 12 | 1 | older versions of the object/relational mapping schema | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2203.2 | 12 | 1 | as well as the object/relational mapping schema defined
                        in Section 12.3 | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2203.3 | 12 | 1 | whether singly | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2203.4 | 12 | 1 | in combination when multiple mapping files are used. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1138 | 12 | 2 | XML Overriding Rules | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1139 | 12 | 2.1 | persistent-unit-defaults Subelements | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:2204 | 12 | 2.1.1 | The schema subelement applies to all ... in the
                persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2204.1 | 12 | 2.1.1 | entities | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2204.2 | 12 | 2.1.1 | tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2204.3 | 12 | 2.1.1 | secondary tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2204.4 | 12 | 2.1.1 | join tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2204.5 | 12 | 2.1.1 | collection tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2204.6 | 12 | 2.1.1 | table generators | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2204.7 | 12 | 2.1.1 | sequence generators | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2205 | 12 | 2.1.1 | The schema subelement is overridden by | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2205.1 | 12 | 2.1.1 | any schema subelement of the entity-mappings
                        element | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2205.2 | 12 | 2.1.1 | any schema element explicitly specified in the
                        Table or SecondaryTable annotation
                        on an
                        entity | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2205.3 | 12 | 2.1.1 | any schema attribute on any table or
                        secondary-table subelement defined within an
                        entity element | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2205.4 | 12 | 2.1.1 | any schema element explicitly specified in a
                        TableGenerator annotation or
                        table-generator subelement | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2205.5 | 12 | 2.1.1 | any schema element explicitly specified in a
                        SequenceGenerator annotation or
                        sequence-generator subelement | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2205.6 | 12 | 2.1.1 | any schema element explicitly specified in a
                        JoinTable annotation or join-table
                        subelement | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2205.7 | 12 | 2.1.1 | and any schema element explicitly specified in
                        a CollectionTable annotation or
                        collection-table subelement. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2206 | 12 | 2.1.2 | The catalog subelement applies to all ... in the
                persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2206.1 | 12 | 2.1.2 | entities | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2206.2 | 12 | 2.1.2 | tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2206.3 | 12 | 2.1.2 | secondary tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2206.4 | 12 | 2.1.2 | join tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2206.5 | 12 | 2.1.2 | collection tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2206.6 | 12 | 2.1.2 | table generators | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2206.7 | 12 | 2.1.2 | sequence generators | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2207 | 12 | 2.1.2 | The catalog subelement is overridden by | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2207.1 | 12 | 2.1.2 | any catalog subelement of the entity-mappings
                        element | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2207.2 | 12 | 2.1.2 | any catalog element explicitly specified in the
                        Table or SecondaryTable annotation
                        on
                        an entity | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2207.3 | 12 | 2.1.2 | any catalog attribute on any table or
                        secondary-table subelement defined within an
                        entity XML element | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2207.4 | 12 | 2.1.2 | any catalog element explicitly specified in a
                        TableGenerator annotation or
                        table-generator subelement | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2207.5 | 12 | 2.1.2 | any catalog element explicitly specified in a
                        SequenceGenerator annotation or
                        sequence-generator subelement | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2207.6 | 12 | 2.1.2 | any catalog element explicitly specified in a
                        JoinTable annotation or join-table
                        subelement | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2207.7 | 12 | 2.1.2 | and any catalog element explicitly specified in
                        a CollectionTable annotation or
                        collection-table subelement | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2208 | 12 | 2.1.3 | It specifies that all database table-, schema-, and
                column-level identifiers in use for the
                persistence unit be treated as delimited identifiers. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2209 | 12 | 2.1.4 | The access subelement applies to all managed classes in
                the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2210 | 12 | 2.1.4 | The access subelement is overridden | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2210.1 | 12 | 2.1.4 | by the use of any annotations specifying
                        mapping information on the fields or
                        properties of the entity class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2210.2 | 12 | 2.1.4 | by any Access annotation on the entity class,
                        mapped superclass, or embeddable
                        class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2210.3 | 12 | 2.1.4 | by any access subelement of the entity-mappings
                        element | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2210.4 | 12 | 2.1.4 | by any Access annotation on a field or property
                        of an entity class, mapped
                        superclass,
                        or embeddable class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2210.5 | 12 | 2.1.4 | by any access attribute defined within an
                        entity, mapped-superclass, or embeddable
                        XML
                        element | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2210.6 | 12 | 2.1.4 | by any access attribute defined within an id,
                        embedded-id, version, basic,
                        embedded,
                        many-to-one, one-to-one, one-to-many, many-to-many or
                        element-collection element. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2211 | 12 | 2.1.5 | The cascade-persist subelement applies to all
                relationships in the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2212 | 12 | 2.1.5 | Specifying this subelement adds the cascade persist option to
                all relationships in addition to any
                settings specified in annotations or XML. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2213 | 12 | 2.1.6 | The entity-listeners subelement defines default entity listeners
                for the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2214 | 12 | 2.1.6 | These entity listeners are called before any other entity
                listeners for an entity unless the entity
                listener order is overridden within a | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2214.1 | 12 | 2.1.6 | mapped-superclass | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2214.2 | 12 | 2.1.6 | entity element | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2214.3 | 12 | 2.1.6 | the ExcludeDefaultListeners annotation is present on the
                        entity or mapped superclass | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2214.4 | 12 | 2.1.6 | the exclude-default-listeners subelement is specified
                        within the corresponding entity or
                        mapped-superclass XML element. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2215 | 12 | 2.2.1 | The package subelement specifies the package of the
                classes listed within the subelements and
                attributes of the same mapping file only. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2216 | 12 | 2.2.1 | The package subelement is overridden if the fully
                qualified class name is specified for a class
                and the two disagree. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2217 | 12 | 2.2.2 | The schema subelement applies to all ... listed within
                the same mapping file. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2217.1 | 12 | 2.2.2 | entities | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2217.2 | 12 | 2.2.2 | tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2217.3 | 12 | 2.2.2 | secondary tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2217.4 | 12 | 2.2.2 | join tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2217.5 | 12 | 2.2.2 | collection tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2217.6 | 12 | 2.2.2 | table generators | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2217.7 | 12 | 2.2.2 | sequence generators | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2218 | 12 | 2.2.2 | The schema subelement is overridden by | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2218.1 | 12 | 2.2.2 | any schema element explicitly specified in the Table,
                        SecondaryTable, JoinTable, or
                        CollectionTable annotation on an entity listed within
                        the mapping file | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2218.2 | 12 | 2.2.2 | any schema attribute on any table or secondary-table
                        subelement defined within the entity
                        element for such an entity | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2218.3 | 12 | 2.2.2 | any schema attribute on any join-table or
                        collection-table subelement of an attribute
                        defined
                        within the attributes subelement of the entity element
                        for such an entity | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2218.4 | 12 | 2.2.2 | by the schema attribute of any table-generator or
                        sequence-generator element within the
                        mapping
                        file. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2219 | 12 | 2.2.3 | The catalog subelement applies to all ... listed within
                the same mapping file. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2219.1 | 12 | 2.2.3 | entities | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2219.2 | 12 | 2.2.3 | tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2219.3 | 12 | 2.2.3 | secondary tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2219.4 | 12 | 2.2.3 | join tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2219.5 | 12 | 2.2.3 | collection tables | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2219.6 | 12 | 2.2.3 | table generators | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2219.7 | 12 | 2.2.3 | sequence generators | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2220 | 12 | 2.2.3 | The catalog subelement is overridden by | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2220.1 | 12 | 2.2.3 | any catalog element explicitly specified in the
                        Table, SecondaryTable, JoinTable,
                        or
                        CollectionTable annotation on an entity listed within
                        the mapping file | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2220.2 | 12 | 2.2.3 | any catalog attribute on any table or secondary-table
                        subelement defined within the entity
                        element for such an entity | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2220.3 | 12 | 2.2.3 | by any catalog attribute on any join-table or
                        collection-table subelement of an attribute
                        defined within the attributes subelement of the entity
                        element for such an entity | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2220.4 | 12 | 2.2.3 | by the catalog attribute of any table-generator or
                        sequence-generator element within the
                        mapping
                        file. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2221 | 12 | 2.2.4 | The access subelement applies to the managed classes listed
                within the same mapping file. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2222 | 12 | 2.2.4 | The access subelement is overridden | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2222.1 | 12 | 2.2.4 | by the use of any annotations specifying
                        mapping information
                        on the fields or properties of the entity class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2222.2 | 12 | 2.2.4 | by any Access annotation on the entity class,
                        mapped
                        superclass, or embeddable class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2222.3 | 12 | 2.2.4 | by any Access annotation on a field or property
                        of an entity class,
                        mapped superclass, or embeddable class | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2222.4 | 12 | 2.2.4 | by any access attribute defined within an
                        entity,
                        mapped-superclass, or embeddable XML element | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2222.5 | 12 | 2.2.4 | by any access attribute defined within an id,
                        embedded-id, version, basic,
                        embedded,
                        many-to-one, one-to-one, one-to-many, many-to-many, or
                        element-collection element. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2223 | 12 | 2.2.5 | The generator defined by the sequence-generator subelement
                applies to the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2224 | 12 | 2.2.5 | It is undefined if multiple mapping files for the persistence
                unit contain generators of the same name. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2225 | 12 | 2.2.5 | The generator defined is added to any generators
                defined in annotations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2226 | 12 | 2.2.5 | If a generator of the same name is defined in
                annotations, the generator defined by this
                subelement overrides that definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2227 | 12 | 2.2.6 | The generator defined by the table-generator subelement applies
                to the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2228 | 12 | 2.2.6 | It is undefined if multiple mapping files for the persistence
                unit contain generators of the same name. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2229 | 12 | 2.2.6 | The generator defined is added to any generators
                defined in annotations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2230 | 12 | 2.2.6 | If a generator of the same name is defined in
                annotations, the generator defined by this
                subelement overrides that definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2231 | 12 | 2.2.7 | The named query defined by the named-query subelement applies to
                the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2232 | 12 | 2.2.7 | It is undefined if multiple mapping files for the persistence
                unit contain named queries of the same
                name. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2233 | 12 | 2.2.7 | The named query defined is added to the named queries defined in
                annotations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2234 | 12 | 2.2.7 | If a named query of the same name is defined in annotations, the
                named query defined by this subelement
                overrides that definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2235 | 12 | 2.2.8 | The named native query defined by the named-native-query
                subelement applies to the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2236 | 12 | 2.2.8 | It is undefined if multiple mapping files for the persistence
                unit contain named queries of the same
                name. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2237 | 12 | 2.2.8 | The named native query defined is added to the named native
                queries defined in annotations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2238 | 12 | 2.2.8 | If a named query of the same name is defined in annotations, the
                named query defined by this subelement
                overrides that definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2239 | 12 | 2.2.9 | The named stored procedure query defined by the
                named-stored-procedure-query subelement applies to the
                persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2240 | 12 | 2.2.9 | It is undefined if multiple mapping files for the persistence
                unit contain named stored procedure
                queries of the same name. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2241 | 12 | 2.2.9 | The named stored procedure query defined is added to the named
                stored procedure queries defined in
                annotations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2242 | 12 | 2.2.9 | If a named stored procedure query of the same name is defined in
                annotations, the named stored procedure
                query defined by this subelement overrides that definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2243 | 12 | 2.2.10 | The SQL result set mapping defined by the sql-result-set-mapping
                subelement applies to the persistence
                unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2244 | 12 | 2.2.10 | It is undefined if multiple mapping files for the persistence
                unit contain SQL result set mappings of
                the same name. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2245 | 12 | 2.2.10 | The SQL result set mapping defined is added to the SQL result
                set mappings defined in annotations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2246 | 12 | 2.2.10 | If a SQL result set mapping of the same name is defined in
                annotations, the SQL result set mapping
                defined by this subelement overrides that definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2247 | 12 | 2.2.11 | The entity subelement defines an entity of the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2248 | 12 | 2.2.11 | It is undefined if multiple mapping files for the persistence
                unit contain entries for the same entity. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2249 | 12 | 2.2.11 | The entity class may or may not have been annotated as Entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2250 | 12 | 2.2.11 | The subelements and attributes of the entity element override as
                specified in section 12.2.3. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2251 | 12 | 2.2.12 | The mapped-superclass subelement defines a mapped superclass of
                the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2252 | 12 | 2.2.12 | It is undefined if multiple mapping files for the persistence
                unit contain entries for the same mapped
                superclass. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2253 | 12 | 2.2.12 | The mapped superclass may or may not have been annotated as
                MappedSuperclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2254 | 12 | 2.2.12 | The subelements and attributes of the mapped-superclass element
                override as specified in section 12.2.4. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2255 | 12 | 2.2.13 | The embeddable subelement defines an embeddable class of the
                persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2256 | 12 | 2.2.13 | It is undefined if multiple mapping files for the persistence
                unit contain entries for the same
                embeddable class. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2257 | 12 | 2.2.13 | The embeddable class may or may not have been annotated as
                Embeddable. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2258 | 12 | 2.2.13 | The subelements and attributes of the embeddable element
                override as specified in section 12.2.5. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2259 | 12 | 2.2.14 | The converter defined by the converter subelement applies to the
                persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2260 | 12 | 2.2.14 | It is undefined if multiple mapping files for the persistence
                unit contain converters for the same
                target type. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2261 | 12 | 2.2.14 | The converter defined is added to the converters defined in
                annotations. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2262 | 12 | 2.2.14 | If a converter for the same target type is defined in
                annotations, the converter defined by this
                subelement overrides that definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2263 | 12 | 2.3.1 | If the metadata-complete attribute of the entity element is
                specified as true, any annotations on the
                entity class (and its fields and properties) are ignored. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2264 | 12 | 2.3.1 | When metadata-complete is specified as true and XML attributes
                or sub-elements of the entity element are
                omitted, the default values for those attributes and elements
                are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2265 | 12 | 2.3.2 | The access attribute overrides any access type specified by the
                persistence-unit-defaults element or
                entity-mappings element for the given entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2266 | 12 | 2.3.2 | The access type for a field or property of the entity may be
                overridden by specifying by overriding the
                mapping for that field or property using the appropriate XML
                subelement, as described in Section
                12.2.3.23 below. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2267 | 12 | 2.3.3 | If the Cacheable annotation was specified for the entity, its
                value is overridden by this attribute. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2268 | 12 | 2.3.3 | The value of the cacheable attribute is inherited by subclasses
                (unless otherwise overridden for a
                subclass by the Cacheable annotation or cacheable XML
                attribute). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2269 | 12 | 2.3.4 | The name attribute overrides the value of the entity name
                defined by the name element of the Entity
                annotation (whether explicitly specified or defaulted). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2270 | 12 | 2.3.5 | The table subelement overrides any Table annotation (including
                defaulted Table values) on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2271 | 12 | 2.3.5 | If a table subelement is present, and attributes or subelements
                of that table subelement are not
                explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2272 | 12 | 2.3.6 | The secondary-table subelement overrides all SecondaryTable and
                SecondaryTables annotations (including
                defaulted SecondaryTable values) on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2273 | 12 | 2.3.6 | If a secondary-table subelement is present, and attributes or
                subelements of that secondary-table
                subelement are not explicitly specified, their default values
                are applied | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2274 | 12 | 2.3.7 | The primary-key-join-column subelement overrides all
                PrimaryKeyJoinColumn and PrimaryKeyJoinColumns
                annotations (including defaulted PrimaryKeyJoinColumn values) on
                the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2275 | 12 | 2.3.7 | If a primary-key-join-column subelement is present, and
                attributes or subelements of that
                primary-key-join-column subelement are not explicitly specified,
                their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2276 | 12 | 2.3.8 | The id-class subelement overrides any IdClass
                annotation specified on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2277 | 12 | 2.3.9 | The inheritance subelement overrides any Inheritance annotation
                (including defaulted Inheritance values)
                on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2278 | 12 | 2.3.9 | If an inheritance subelement is present, and the strategy
                attribute is not explicitly specified, its
                default value is applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2279 | 12 | 2.3.9 | This element applies to the entity and its subclasses (unless
                otherwise overridden for a subclass by an
                annotation or XML element). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2280 | 12 | 2.3.9 | Support for the combination of inheritance strategies is not
                required by this specification. Portable
                applications should use only a single inheritance strategy
                within an entity hierarchy. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2281 | 12 | 2.3.10 | The discriminator-value subelement overrides any
                DiscriminatorValue annotations (including defaulted
                DiscriminatorValue values) on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2282 | 12 | 2.3.11 | The discriminator-column subelement overrides any
                DiscriminatorColumn annotation (including defaulted
                DiscriminatorColumn values) on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2283 | 12 | 2.3.11 | If a discriminator-column subelement is present, and attributes
                of that discriminator-column subelement
                are not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2284 | 12 | 2.3.11 | This element applies to the entity and its subclasses (unless
                otherwise overridden for a subclass by an
                annotation or XML element). | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2285 | 12 | 2.3.12 | The generator defined by the sequence-generator subelement is
                added to any generators defined in
                annotations and any other generators defined in XML. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2286 | 12 | 2.3.12 | If a generator of the same name is defined in annotations, the
                generator defined by this subelement
                overrides that definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2287 | 12 | 2.3.12 | If a sequence-generator subelement is present, and attributes or
                subelements of that sequence-generator
                subelement are not explicitly specified, their default values
                are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2288 | 12 | 2.3.12 | The generator defined by the sequence-generator subelement
                applies to the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2289 | 12 | 2.3.12 | It is undefined if multiple mapping files for the persistence
                unit contain generators of the same name. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2290 | 12 | 2.3.13 | The generator defined by the table-generator subelement is added
                to any generators defined in
                annotations and any other generators defined in XML. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2291 | 12 | 2.3.13 | If a generator of the same name is defined in annotations, the
                generator defined by this subelement
                overrides that definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2292 | 12 | 2.3.13 | If a table-generator subelement is present, and attributes or
                subelements of that table-generator
                subelement are not explicitly specified, their default values
                are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2293 | 12 | 2.3.13 | The generator defined by the table-generator subelement
                applies to the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2294 | 12 | 2.3.13 | It is undefined if multiple mapping files for the persistence
                unit contain generators of the same name. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2295 | 12 | 2.3.14 | The attribute-override subelement is additive to any
                AttributeOverride or AttributeOverrides annotations
                on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2296 | 12 | 2.3.14 | It overrides any AttributeOverride elements for the same
                attribute name. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2297 | 12 | 2.3.14 | If an attribute-override subelement is present, and attributes
                or subelements of that attribute-override
                subelement are not explicitly specified, their default values
                are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2298 | 12 | 2.3.15 | The association-override subelement is additive to any
                AssociationOverride or AssociationOverrides
                annotations on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2299 | 12 | 2.3.15 | It overrides any AssociationOverride elements for the same
                attribute name. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2300 | 12 | 2.3.15 | If an association-override subelement is present, and attributes
                or subelements of that
                association-override subelement are not explicitly specified,
                their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2301 | 12 | 2.3.16 | The convert subelement is additive to any Convert or Converts
                annotations on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2302 | 12 | 2.3.16 | It overrides any Convert elements for the same attribute name. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2303 | 12 | 2.3.16 | If a convert subelement is present, and attributes or
                subelements of that convert subelement are not
                explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2472 | 12 | 2.3.17 | The named-entity-graph subelement is additive to any
                NamedEntityGraph annotations on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2473 | 12 | 2.3.17 | It overrides any NamedEntityGraph annotation with the same name. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2304 | 12 | 2.3.18 | The named query defined by the named-query subelement is added
                to any named queries defined in
                annotations, and any other named queries defined in XML. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2305 | 12 | 2.3.18 | If a named query of the same name is defined in annotations, the
                named query defined by this subelement
                overrides that definition | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2306 | 12 | 2.3.18 | If a named-query subelement is present, and attributes or
                subelements of that named-query subelement are
                not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2307 | 12 | 2.3.18 | The named query defined by the named-query subelement applies to
                the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2308 | 12 | 2.3.18 | It is undefined if multiple mapping files for the persistence
                unit contain named queries of the same
                name. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2309 | 12 | 2.3.19 | The named query defined by the named-native-query subelement is
                added to any named queries defined in
                annotations, and any other named queries defined in XML. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2310 | 12 | 2.3.19 | If a named query of the same name is defined in annotations, the
                named query defined by this subelement
                overrides that definition | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2311 | 12 | 2.3.19 | If a named-native-query subelement is present, and attributes or
                subelements of that named-native-query
                subelement are not explicitly specified, their default values
                are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2312 | 12 | 2.3.19 | The named native query defined by the named-native-query
                subelement applies to the persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2313 | 12 | 2.3.19 | It is undefined if multiple mapping files for the persistence
                unit contain named queries of the same
                name. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2314 | 12 | 2.3.20 | The named stored procedure query defined by the
                named-stored-procedure-query subelement is added to any
                named stored procedure queries defined in annotations, and any
                other named stored procedure queries
                defined in XML. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2315 | 12 | 2.3.20 | If a named stored procedure query of the same name is defined in
                annotations, the named stored procedure
                query defined by this subelement overrides that definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2316 | 12 | 2.3.20 | If a named-stored-procedure-query subelement is present, and
                attributes or subelements of that
                named-stored-procedure-query subelement are not explicitly
                specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2317 | 12 | 2.3.20 | The named stored procedure query defined by the
                named-stored-procedure-query subelement applies to the
                persistence unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2318 | 12 | 2.3.20 | It is undefined if multiple mapping files for the persistence
                unit contain named stored procedure
                queries of the same name. | true | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2319 | 12 | 2.3.21 | The SQL result set mapping defined by the sql-result-set-mapping
                is added to the SQL result set mappings
                defined in annotations, and any other SQL result set mappings
                defined in XML. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2320 | 12 | 2.3.21 | If a SQL result set mapping of the same name is defined in
                annotations, the SQL result set mapping
                defined by this subelement overrides that definition. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2321 | 12 | 2.3.21 | If a sql-result-set-mapping subelement is present, and
                attributes or subelements of that
                sql-result-set-mapping subelement are not explicitly specified,
                their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2322 | 12 | 2.3.21 | The SQL result set mapping defined by the sql-result-set-mapping
                subelement applies to the persistence
                unit. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2323 | 12 | 2.3.21 | It is undefined if multiple mapping files for the persistence
                unit contain SQL result set mappings of
                the same name. | false | 
 | false | technology | active | false | 
| PERSISTENCE:SPEC:2324 | 12 | 2.3.22 | The exclude-default-listeners subelement applies
                whether or not the ExcludeDefault-
                Listeners annotation was specified on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2325 | 12 | 2.3.22 | This element causes the default entity listeners to be
                excluded for the entity and its
                subclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2326 | 12 | 2.3.23 | The exclude-superclass-listeners subelement applies whether or
                not the ExcludeSuperclassListeners
                annotation was specified on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2327 | 12 | 2.3.23 | This element causes any superclass listeners to be
                excluded for the entity and its subclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2328 | 12 | 2.3.24 | The entity-listeners subelement overrides any
                EntityListeners annotation on the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2329 | 12 | 2.3.24 | These listeners apply to the entity and its subclasses
                unless otherwise excluded. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2330 | 12 | 2.3.25 | These subelements override any lifecycle callback methods
                defined by the corresponding annotations on
                the entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2330.1 | 12 | 2.3.25 | pre-persist | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2330.2 | 12 | 2.3.25 | post-persist | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2330.3 | 12 | 2.3.25 | pre-remove | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2330.4 | 12 | 2.3.25 | post-remove | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2330.5 | 12 | 2.3.25 | pre-update | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2330.6 | 12 | 2.3.25 | post-update | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2330.7 | 12 | 2.3.25 | post-load | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2331 | 12 | 2.3.26 | The attributes element groups the mapping subelements
                for the fields and properties of the
                entity. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2332 | 12 | 2.3.26 | It may be sparsely populated to include only a subset
                of the fields and properties. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2333 | 12 | 2.3.26 | If the value of metadata-complete is true, the
                remainder of the attributes will be defaulted
                according to the default rules. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2334 | 12 | 2.3.26 | If metadata-complete is not specified, or is false, the mappings
                for only those properties and fields
                that are explicitly specified will be overridden. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2335 | 12 | 2.3.26.1 | The id subelement overrides the mapping for the specified field
                or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2336 | 12 | 2.3.26.1 | If an id subelement is present, and attributes or subelements of
                that id subelement are not explicitly
                specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2337 | 12 | 2.3.26.2 | The embedded-id subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2338 | 12 | 2.3.26.2 | If an embedded-id subelement is present, and attributes or
                subelements of that embedded-id subelement
                are not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2339 | 12 | 2.3.26.3 | The basic subelement overrides the mapping for the specified
                field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2340 | 12 | 2.3.26.3 | If a basic subelement is present, and attributes or subelements
                of that basic subelement are not
                explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2341 | 12 | 2.3.26.4 | The version subelement overrides the mapping for the specified
                field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2342 | 12 | 2.3.26.4 | If a version subelement is present, and attributes or
                subelements of that version subelement are not
                explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2343 | 12 | 2.3.26.5 | The many-to-one subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2344 | 12 | 2.3.26.5 | If a many-to-one subelement is present, and attributes or
                subelements of that many-to-one subelement are
                not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2345 | 12 | 2.3.26.6 | The one-to-many subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2346 | 12 | 2.3.26.6 | If a one-to-many subelement is present, and attributes or
                subelements of that one-to-many subelement are
                not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2347 | 12 | 2.3.26.7 | The one-to-one subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2348 | 12 | 2.3.26.7 | If a one-to-one subelement is present, and attributes or
                subelements of that one-to-one subelement are
                not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2349 | 12 | 2.3.26.8 | The many-to-many subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2350 | 12 | 2.3.26.8 | If a many-to-many subelement is present, and attributes or
                subelements of that many-to-many subelement
                are not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2351 | 12 | 2.3.26.9 | The element-collection subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2352 | 12 | 2.3.26.9 | If an element-collection subelement is present, and attributes
                or subelements of that element-collection
                subelement are not explicitly specified, their default values
                are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2353 | 12 | 2.3.26.10 | The embedded subelement overrides the mapping for the specified
                field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2354 | 12 | 2.3.26.10 | If an embedded subelement is present, and attributes or
                subelements of that embedded subelement are not
                explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2355 | 12 | 2.3.26.11 | The transient subelement overrides the mapping for the specified
                field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2356 | 12 | 2.4 | These apply only to the mapped-superclass for which they are
                subelements or attributes, unless otherwise
                specified below. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2357 | 12 | 2.4.1 | If the metadata-complete attribute of the mapped-superclass
                element is specified as true, any
                annotations on the mapped superclass (and its fields and
                properties) are ignored. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2358 | 12 | 2.4.1 | When metadata-complete is specified as true and attributes or
                sub-elements of the mapped-superclass
                element are omitted, the default values for those attributes and
                elements are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2359 | 12 | 2.4.2 | The access attribute defines the access type for the mapped
                superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2360 | 12 | 2.4.2 | The access attribute overrides any access type specified by the
                persistence-unit-defaults element or
                entity-mappings element for the given mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2361 | 12 | 2.4.2 | The access type for a field or property of the mapped superclass
                may be overridden by specifying by
                overriding the mapping for that field or property using the
                appropriate XML subelement | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2362 | 12 | 2.4.3 | The id-class subelement overrides any IdClass annotation
                specified on the mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2363 | 12 | 2.4.4 | The exclude-default-listeners subelement applies whether or not
                the ExcludeDefault-Listeners annotation
                was specified on the mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2364 | 12 | 2.4.4 | This element causes the default entity listeners to be excluded
                for the mapped superclass and its
                subclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2365 | 12 | 2.4.5 | The exclude-superclass-listeners subelement applies whether or
                not the ExcludeSuperclassListeners
                annotation was specified on the mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2366 | 12 | 2.4.5 | This element causes any superclass listeners to be excluded for
                the mapped superclass and its
                subclasses. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2367 | 12 | 2.4.6 | The entity-listeners subelement overrides any EntityListeners
                annotation on the mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2368 | 12 | 2.4.6 | These listeners apply to the mapped superclass and its
                subclasses unless otherwise excluded. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2369 | 12 | 2.4.7 | These subelements override any lifecycle callback methods
                defined by the corresponding annotations on
                the mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2369.1 | 12 | 2.4.7 | pre-persist | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2369.2 | 12 | 2.4.7 | post-persist | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2369.3 | 12 | 2.4.7 | pre-remove | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2369.4 | 12 | 2.4.7 | post-remove | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2369.5 | 12 | 2.4.7 | pre-update | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2369.6 | 12 | 2.4.7 | post-update | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2369.7 | 12 | 2.4.7 | post-load | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2370 | 12 | 2.4.8 | The attributes element groups the mapping subelements for the
                fields and properties defined by the
                mapped superclass. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2371 | 12 | 2.4.8 | It may be sparsely populated to include only a subset of the
                fields and properties. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2372 | 12 | 2.4.8 | If the value of metadata-complete is true, the remainder of the
                attributes will be defaulted according
                to the default rules | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2373 | 12 | 2.4.8 | If metadata-complete is not specified, or is false, the mappings
                for only those properties and fields
                that are explicitly specified will be overridden. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2374 | 12 | 2.4.8.1 | The id subelement overrides the mapping for the specified field
                or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2375 | 12 | 2.4.8.1 | If an id subelement is present, and attributes or subelements of
                that id subelement are not explicitly
                specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2376 | 12 | 2.4.8.2 | The embedded-id subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2377 | 12 | 2.4.8.2 | If an embedded-id subelement is present, and attributes or
                subelements of that embedded-id subelement
                are not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2378 | 12 | 2.4.8.3 | The basic subelement overrides the mapping for the specified
                field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2379 | 12 | 2.4.8.3 | If a basic subelement is present, and attributes or subelements
                of that basic subelement are not
                explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2380 | 12 | 2.4.8.4 | The version subelement overrides the mapping for the specified
                field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2381 | 12 | 2.4.8.4 | If a version subelement is present, and attributes or
                subelements of that version subelement are not
                explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2382 | 12 | 2.4.8.5 | The many-to-one subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2383 | 12 | 2.4.8.5 | If a many-to-one subelement is present, and attributes or
                subelements of that many-to-one subelement are
                not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2384 | 12 | 2.4.8.6 | The one-to-many subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2385 | 12 | 2.4.8.6 | If a one-to-many subelement is present, and attributes or
                subelements of that one-to-many subelement are
                not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2386 | 12 | 2.4.8.7 | The one-to-one subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2387 | 12 | 2.4.8.7 | If a one-to-one subelement is present, and attributes or
                subelements of that one-to-one subelement are
                not explicitly specified, their default values are applied | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2388 | 12 | 2.4.8.8 | The many-to-many subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2389 | 12 | 2.4.8.8 | If a many-to-many subelement is present, and attributes or
                subelements of that many-to-many subelement
                are not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2390 | 12 | 2.4.8.9 | The element-collection subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2391 | 12 | 2.4.8.9 | If an element-collection subelement is present, and attributes
                or subelements of that element-collection
                subelement are not explicitly specified, their default values
                are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2392 | 12 | 2.4.8.10 | The embedded subelement overrides the mapping for the specified
                field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2393 | 12 | 2.4.8.10 | If an embedded subelement is present, and attributes or
                subelements of that embedded subelement are not
                explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2394 | 12 | 2.4.8.11 | The transient subelement overrides the mapping for the specified
                field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2395 | 12 | 2.5 | These apply only to the embeddable for which they are
                subelements or attributes | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2396 | 12 | 2.5.1 | If the metadata-complete attribute of the embeddable element is
                specified as true, any annotations on
                the embeddable class (and its fields and properties) are
                ignored. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2397 | 12 | 2.5.1 | When metadata-complete is specified as true and attributes and
                sub-elements of the embeddable element
                are omitted, the default values for those attributes and
                elements are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2398 | 12 | 2.5.2 | The access attribute defines the access type for the embeddable
                class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2399 | 12 | 2.5.2 | The access attribute overrides any access type specified by the
                persistence-unit-defaults element or
                entity-mappings element for the given embeddable class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2400 | 12 | 2.5.2 | The access type for a field or property of the embeddable class
                may be overridden by specifying by
                overriding the mapping for that field or property using the
                appropriate XML subelement | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2401 | 12 | 2.5.3 | The attributes element groups the mapping subelements for the
                fields and properties defined by the
                embeddable class. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2402 | 12 | 2.5.3 | It may be sparsely populated to include only a subset of the
                fields and properties | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2403 | 12 | 2.5.3 | If the value of metadata-complete is true, the remainder of the
                attributes will be defaulted according
                to the default rules | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2404 | 12 | 2.5.3 | If metadata-complete is not specified, or is false, the mappings
                for only those properties and fields
                that are explicitly specified will be overridden. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2405 | 12 | 2.5.3.1 | The basic subelement overrides the mapping for the specified
                field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2406 | 12 | 2.5.3.1 | If a basic subelement is present, and attributes or subelements
                of that basic subelement are not
                explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2407 | 12 | 2.5.3.2 | The many-to-one subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2408 | 12 | 2.5.3.2 | If a many-to-one subelement is present, and attributes or
                subelements of that many-to-one subelement are
                not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2409 | 12 | 2.5.3.3 | The one-to-many subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2410 | 12 | 2.5.3.3 | If a one-to-many subelement is present, and attributes or
                subelements of that one-to-many subelement are
                not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2411 | 12 | 2.5.3.4 | The one-to-one subelement overrides the mapping for the
                specified field or property | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2412 | 12 | 2.5.3.4 | If a one-to-one subelement is present, and attributes or
                subelements of that one-to-one subelement are
                not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2413 | 12 | 2.5.3.5 | The many-to-many subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2414 | 12 | 2.5.3.5 | If a many-to-many subelement is present, and attributes or
                subelements of that many-to-many subelement
                are not explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2415 | 12 | 2.5.3.6 | The element-collection subelement overrides the mapping for the
                specified field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2416 | 12 | 2.5.3.6 | If an element-collection subelement is present, and attributes
                or subelements of that element-collection
                subelement are not explicitly specified, their default values
                are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2417 | 12 | 2.5.3.7 | The embedded subelement overrides the mapping for the specified
                field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2418 | 12 | 2.5.3.7 | If an embedded subelement is present, and attributes or
                subelements of that embedded subelement are not
                explicitly specified, their default values are applied. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:2419 | 12 | 2.5.3.8 | The transient subelement overrides the mapping for the specified
                field or property. | true | 
 | false | technology | active | true | 
| PERSISTENCE:SPEC:1140 | 12 | 2.2 | Other Subelements of the entity-mappings element | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1141 | 12 | 2.3 | entity Subelements and Attributes | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1142 | 12 | 2.4 | mapped-superclass Subelements and Attributes | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1143 | 12 | 2.5 | embeddable Subelements and Attributes | true | 
 | false | technology | removed | true | 
| PERSISTENCE:SPEC:1144 | 12 | 3 | XML Schema | true | 
 | false | technology | removed | true |