Java(TM) Persistence API
PERSISTENCE - 1.0
Specification Assertion Detail

TotalsTotalActiveDeprecatedRemoved
# of Assertions 76576500
# of Required Assertions 75175100
# of Optional Assertions 141400

IDChapterSectionDescriptionRequiredDependencyImplementation SpecificDefined byStatusTestable
PERSISTENCE:SPEC:50021The entity class must:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:50121be annotated with the Entity annotationtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:50221be denoted in the deployment descriptor as an Entitytrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:50321The entity must have a no-arg constructor.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:50421The entity may have other constructors as well.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:50521The no-arg constructor must be public or protected.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:50621If the entity is to be passed by value as a detached object (e.g., through a remote interface), it must implement the Serializable interface.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:50721The entity class must not be final. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:50821No methods or persistent instances of the entity class may be final.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:50921Both abstract and concrete classes can be entities.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:51021Entities may extend non-entity classes as well as entity classes and non-entity classes may extend entity classes.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:51121Instance variables must not be accessed by clients of the entity. The state of the entity is available to clients only through the entity's accessor methods or other business methods.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:51221Instance variables must be private, protected, or package visibility.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:51321.1If the entity is field-based access, the persistence provider runtime accesses instance variables directly and all non-transient instance variables that are not annotated with the Transient annotation are persistent.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:51421.1If the entity is property-based access, the persistence provider accesses persistent state via the property accessor methods and all properties not annotated with the Transient annotation are persistent.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:51521.1The property accessor methods must be public or protected.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:51621.1It is required that the entity class follow the method conventions for a JavaBean when persistent properties are used.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:51721.1Collection-valued peristent fields and properties must be defned in terms of the java.util.Collection or java.util.Set interfaces regardless of whether the entity class otherwise adheres to the JavaBeans conventions noted above. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:51821.1 The following collection interfaces are supported: java.util.Collection, java.util.set, java.util.List, java.util.Maptrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:51921.1For collection-valued persistent properties, type T must be one of these Collection interface types in the method signatures above. Generic variants of these Collection types may also be used.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:52021.1In 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:52121.1Runtime exceptions thrown by property accessor methods will cause the current transaction to be rolled back.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:52221.1Exceptions thrown by such methos when used by the persistence runtime to load or store persistent state cause the persistence runtime to rollback the current transaction and to throw a PersistenceException that wraps the application exception.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:52321.1Entity subclasses are permitted to override the property accessor methods of the entity. However, portable applications must not override the object/relational mapping metadata that applies to the persistent fields or properties of entity superclasses.true
truetechnologyactivetrue
PERSISTENCE:SPEC:52421.1The persistent fields or properties of an entity may be one of the following types:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:52521.1Java primitive typestrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:52621.1java.lang.Stringtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:52721.1other 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.TimeStamptrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:52821.1user-defined serializable types, byte[], Byte[], char[], and Character[]true
falsetechnologyactivetrue
PERSISTENCE:SPEC:52921.1enumstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:53021.1entity typestrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:53121.1collection of entity typestrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:53221.1embeddable classestrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:53321.4Every entity must have a primary key.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:53421.4A simple primary key must correspond to a single persistent field or property of the entity class.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:53521.4A composite primary key must correspond to either a single persistent field or property or to a set of such fields or properties.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:53621.4The primary key must be one of the following types:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:53721.4any Java primitive typetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:53821.4any primitive wrapper typetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:53921.4java.lang.Stringtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:54021.4java.util.Date. If java.util.Date is used as a primary key field or property,the temporal type should be specified as DATE.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:54121.4java.sql.Datetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:54221.4The 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.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:54321.4The following rules apply for composite primary keys:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:54421.4The primary key class must be public and must have a public no-arg constructor.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:54521.4The primary key class must be serializable.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:54621.4If property-based access is used, the properties of the primary key class must be public or protected.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:54721.4The composite primary key must define equals and hashCode methods.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:54821.4A composite primary key must either be represented and mapped as an embeddable class (EmbeddedId annotation) or must be represented and mapped to multiple fields or properties of the entity class (IdClass annotation).true
falsetechnologyactivetrue
PERSISTENCE:SPEC:54921.4If the composite primary key class is mapped to multiple fields or properties of the entity class, then the names of the primary key fields or properties in the primary key class and those of the entity class must correspond and their types must be the same.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:55021.4The application must not change the value of the primary key. The behavior is undefined if this occurs.true
truetechnologyactivefalse
PERSISTENCE:SPEC:55121.5Such 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
truetechnologyactivefalse
PERSISTENCE:SPEC:55221.5Collection of embedded objects are not supported in this release.false
falsetechnologyactivefalse
PERSISTENCE:SPEC:55321.5Embeddable 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:55421.5Unlike entities, embeddable classes do not support polymorphism and inheritance.false
falsetechnologyactivefalse
PERSISTENCE:SPEC:55521.6If 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. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:55621.6If the type of the field or property is one of the following, it is mapped 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:55721.6If the type is a class that is annotated with the @Embeddable annotation, it is mapped as @Embedded.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:56021.6It is an error if no annotation is present and none of the above rules apply.true
truetechnologyactivetrue
PERSISTENCE:SPEC:56121.7If there is an association between two entities, one of the following relationship modeling annotations must be applied to the corresponding property or instance variable of the referencing entity:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:56221.7OneToOnetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:56321.7OneToManytrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:56421.7ManyToOnetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:56521.7ManyToManytrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:56621.7For 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:56721.7A bidirectional relationship has both an owning side and an inverse side.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:56821.7A unidirectional relationship has only an owning side.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:56921.7The following rules apply to bidirectional relationships:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:57021.7The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:57121.7The mappedBy element designates the property or field in the entity that is the owner of the relationship.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:57221.7The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:57321.7For one-to-one bidirectional relationships, the owning side corresponds to the side that contains the corresponding foreign key.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:57421.7For many-to-many bidirectional relationships, either side may be the owning side.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:57521.7The cascade=REMOVE specification should only be applied to associations that are specified as OneToOne or OneToMany.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:57621.7Applications that apply cascade=REMOVE to other assocations [ManyToMany, ManyToOne] are not portable.true
truetechnologyactivetrue
PERSISTENCE:SPEC:57721.7A foreign key mapping may be used for a unidirectional one-to-many mapping. Any such overriding must be consistent with the relationship modeling annotation that is specified.true
truetechnologyactivetrue
PERSISTENCE:SPEC:57821.8.1Bidirectional OneToOne Relationshipstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:57921.8.2Bidirectional ManyToOne/OneToMany Relationshipstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:58021.8.3Unidirectional Single-Valued Relationshipstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:58121.8.3.1Unidirectional OneToOne Relationshipstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:58221.8.3.2Unidirectional ManyToOne Relationshipstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:58321.8.4Bidirectional ManyToMany Relationshipstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:58421.8.5Unidirectional Multi-Valued Relationshipstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:58521.8.5.1Unidirectional OneToMany Relationshipstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:58621.8.5.2Unidirectional ManyToMany Relationshipstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:58721.9When an entity is defined as a subclass of another entity, the primary keys of the entities must be of the same type.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:58821.9.1An abstract entity class is annotated with the Entity annotation or denoted in the XML descriptor as an entity.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:58921.9.2An entity may have a non-entity superclass which may be either a concrete or abstract class.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:59021.9.2The state of a non-entity superclass is not persistent.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:59121.9.2Any state inherited from non-entity superclasses is non-persistent in an inheriting entity class. This non-persistent state is not managed by the EntityManager, nor is it required to be retained across transactions.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:59221.9.2Non-entity classes cannot be passed as arguments to methods of the EntityManager or Query interfaces and cannot bear mapping information.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:59321.9.3An entity may have an mapped superclass, which provides persistent entity state and mapping information, but which is not an entity itself.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:59421.9.3A mapped superclass, unlike an entity, is not queryable and cannot be passed as an argument to EntityManager or Query operations.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:59521.9.3An mapped superclass cannot be the target of a persistent relationship.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:59621.9.3Both abstract or concrete classes may be specified as mapped superclasses.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:59721.9.3The MappedSuperclass annotation (or mapped-superclass XML descriptor element) is used to designate an mapped superclass.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:59821.9.3A 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:59921.9.3A classes designated as MappedSuperclass 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:60021.9.3Mapping information may be overriden in such subclasses by using the AttributeOverride annotation or attribute-override XML element.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:60121.9.3All other entity mapping defaults apply equally to a class designated as MappedSuperclass.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:60221.10There are three basic strategies that are used when mapping a class or class hierarchy to a relational database schema:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:60321.10.1Single Table per Class Hierarchy Strategy. An implementation is required to support the single table per class hierachy inheritance mapping strategy.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:60421.10.2Table Per Class Strategy - Optional in this release.false
truetechnologyactivefalse
PERSISTENCE:SPEC:60521.10.3Joined Subclass Strategy true
falsetechnologyactivetrue
PERSISTENCE:SPEC:60631.1The persist, merge, remove, flush, 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:60731.1The find and getReference methods are not required to be invoked within a transaction context. 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:60831.1The Query and EntityTransaction objects obtained from an entity manager are valid while that entity manager is open.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:60931.1If the argument to the createQuery method is not a valid QL query string, the IllegalArgumentException may be thrown or the query execution will fail.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:61031.1If 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
falsetechnologyactivefalse
PERSISTENCE:SPEC:61131.1Runtime exceptions thrown by the methods of the EntityManager interface will cause the current transaction to be rolled back.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:61231.1The methods close, isOpen, joinTransaction and getTransaction are used to managed application-managed entity managers and their life cycle.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:61332Entity Instance's Life Cycle:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:61432A new entity instance has no persistent identity and is not yet associated with a persistence context.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:61532A managed entity instance is an instance with a persistent identity that is currently associated with a persistence context.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:61632A detached entity is an instance with a persistent identity that is not (or no longer) associated with a persistence context.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:61732A removed entity instance is an instance with a persistent identity associated with a persistence context that is scheduled for removal from the database.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:61832.1The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:61932.1If X is a new entity, it becomes managed.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:62032.1The entity X will be entered into the database at or before transaction commit or as a result of the flush operation.true
truetechnologyactivetrue
PERSISTENCE:SPEC:62132.1If X is a preexisting managed entity, it is ignored by the persist operation.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:62232.1However, the persist operation is cascaded to entities referenced by X, if the relationship from X to these other entities is annotated with cascade=PERSIST annotation element.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:62332.1However, the persist 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:62432.1If X is a removed entity, it becomes managed.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:62532.1If X is a detached object, an IllegalArgumentException will be thrown by the persist operation (or the transaction comit will fail).true
truetechnologyactivetrue
PERSISTENCE:SPEC:62632.1For 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:62732.1For 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:62832.2A 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:62932.2If X is a new entity, it is ignored by the remove operation.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:63032.2However, 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:63132.2However, 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:63232.2If X is a managed entity, the remove operation causes it to transition to the removed state.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:63332.2The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:63432.2The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:63532.2If X is a detached entity, an IllegalArgumentException will be thrown by the remove operation (or the transaction commit will fail).true
truetechnologyactivetrue
PERSISTENCE:SPEC:63632.2If X is a removed entity, it is ignored by the remove operation.true
truetechnologyactivetrue
PERSISTENCE:SPEC:63732.2A removed entity X will be removed from the database at or before transaction commit or as a result of the flush operation.true
truetechnologyactivetrue
PERSISTENCE:SPEC:63832.2Accessing an entity in the removed state is undefined.false
truetechnologyactivefalse
PERSISTENCE:SPEC:63932.3The state of persistent entities is synchronized with the database at transaction commit.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:64032.3The persistence provider runtime is permitted to perform [database] synchronization at other times as well, for example, before query execution.true
truetechnologyactivefalse
PERSISTENCE:SPEC:64132.3The flush method can be used to force synchronization. It applies to entities associated with a persistence context. The semantics of the flush operation, applied to entity X are as follows:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:64232.3If X is a managed entity, it is synchronized to the database.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:64332.3For 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:64432.3For 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:64532.3For any new entity Y referenced by a relationship from X, where the relationship to Y has not been annotated with the cascade element cascade=PERSIST or cascade=ALL, an exception will be thrown by the flush operation or the transaction commit will fail.true
truetechnologyactivetrue
PERSISTENCE:SPEC:64632.3For any detached 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, the semantics depend upon the ownership of the relationship: If X owns the relationship, any changes to the relationship are synchronized with the database.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:64732.3For any detached 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, the semantics depend upon the ownership of the relationship: If Y owns the relationships, the behavior is undefined.true
truetechnologyactivefalse
PERSISTENCE:SPEC:64832.3If X is a removed entity, it is removed from the database.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:64932.4When the persistence context ends, managed entity instances associated with the context become detached. The application may safely access their available state of available detached entity instances after the persistence context ends. The available state includes:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:65032.4Any persistent field or property not marked fetch=LAZYtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:65132.4Any persistent field or property that was accessed by the application.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:65232.4If the persistent field or property is an associationm, the state of an associated instance may only be safely accessed if the associated instance is available. The available instances include:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:65332.4All entity instances retrieved using find().true
falsetechnologyactivetrue
PERSISTENCE:SPEC:65432.4Any entity instances retrieved using a query or explictly requested in the FETCH JOIN clause.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:65532.4Any entity instance for which an instance variable holding non-primary-key persistent state was accessed by the application.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:65632.4Any entity instance that may be reached from another available instance by navigating associations marked fetch=EAGER.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:65732.4A detached entity may also result by serializing an entity, or otherwise passing it by value (e.g., to a separate application tier,through a remote inteface, etc.) and the same rules apply.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:65832.4.1The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:65932.4.1If X is a detached entity, it is copied onto pre-existing managed entity instance X1 of the same identity or a new managed copy of X is created.true
truetechnologyactivetrue
PERSISTENCE:SPEC:66032.4.1If X is a new entity instance, a new managed entity instance X1 is created and the state of X is copied into the new managed entity instance X1.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:66132.4.1If X is a removed entity instance, an IllegalArgumentException will be thrown by the merge operation (or the transaction commit will fail).true
truetechnologyactivetrue
PERSISTENCE:SPEC:66232.4.1If 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:66332.4.1If 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:66432.4.1For all entities Y referenced by relationships from X having the cascade element value cascade=MERGE, Y is merged recursively as Y1. For all such Y referenced by X, X1 is set to reference Y1.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:66532.4.1For all entities Y referenced by relationships from X having the cascade element value cascade=ALL, Y is merged recursively as Y1. For all such Y referenced by X, X1 is set to reference Y1.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:66632.4.1Version colunms used by the entity should be checked by the persistence runtime implementation during the merge operation or at flush or commit time.true
truetechnologyactivetrue
PERSISTENCE:SPEC:66732.5The contains method [used to determine whether an entity instance is in the managed state] returns true:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:66832.5If the entity has been retrieved from the database and has not been removed or detached.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:66932.5If the entity instance is new and the persist method has been called on the entity.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:67032.5If the entity instance is new and the persist operation has been cascaded to it.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:67132.5The contains method [used to determine whether an entity instance is in the managed state] returns false:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:67232.5If the instance is detached.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:67332.5If the remove method has been called on the entity.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:67432.5If the remove operation has been cascaded to it.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:67532.5If the entity instance is new and the persist method has not been called on the entity.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:67632.5If the entity instance is new and the persist operation has not been cascaded to it.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:67732.5Not that the effect of cascading persist or remove is immediately visible to the contains method, whereas, the actual insertion or deletion of the database representation for the entity may be deferred until the end of the transaction.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:67833The enum PersistenceContextType is used to define persistence context lifetime scope for container-managed entity managers.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:67933By default, a persistence context's lifecycle corresponds to the scope of a transaction (PersistenceContextType.TRANSACTION).true
falsetechnologyactivetrue
PERSISTENCE:SPEC:68033When 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:68133An 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:68233Navigation 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:68333When 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:68433The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:68533.1The managed entities of a transaction-scoped persistence context become detached when the transaction commits.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:68633.1The managed entities of an extended persistence context remain managed.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:68733.2For both transaction-scoped and extended persistence contexts, transaction rollback causes all pre-existng managed instances and removed instances to become detached.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:68834Optmistic Locking and Concurrencytrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:68934.1Optimistic Lockingtrue
truetechnologyactivetrue
PERSISTENCE:SPEC:69034.2Version Attributestrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:69134.3Lock Modestrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:69234.4OptimisticLockExceptiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:69334.4OptimisticLockException always causes the transaction to roll back.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:69435Lifecycle callback methods and entity listener classes are defined by means of metadata annotations or in the XML descriptor.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:69535When annotations are used, one or more entity listener classes are denoted using the EntityListeners annoation on the entity class or mapped superclass.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:69635If 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:69735The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:69835Any subset or combination of annotations may be specified on an entity class, mapped superclass, of listener class..true
falsetechnologyactivetrue
PERSISTENCE:SPEC:69935A 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:70035Multple entity classes and mapped superclasses in an inheritance hierarchy may define listener classes and/or lifecycle callback methods directly on the class.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:70135The entity listener class must have a public no-arg constructor.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:70235The following rules apply to callbacks:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:70335Callback methods may throw unchecked/runtime exceptions.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:70435A runtime exception thrown by a callback method that executes within a transaction causes that transaction to be rolled back.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:70535Lifecycle callbacks can invoke JNDI, JDBC, JMS, and enterprise beans.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:70635 In general, portable applications should not invoke EntityManager or Query operations, access other entity instances or modify relationships in a lifecycle callback method.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:70735When 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:70835.2The PrePersist and PreRemove callback methods are invoked for a given entity before the respective EntityManager persist and remove operation for that entity are executed These callbacks will also be invoked on entities to which these operations are cascaded.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:70935.2The PrePersist and PreRemove callbacks will always be invoked on all entities which these operations are cascaded.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:71035.2For entities which the merge operation has been applied and causes the creation of newly managed instaced, the PrePersist callback methods will be invoked for the managed instance after the entity state has been copied to it.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:71135.2The PrePersist and PreRemove callbacks will always be invoked as part of the synchronous persist, merge, and remove operations..true
falsetechnologyactivetrue
PERSISTENCE:SPEC:71235.2The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:71335.2The PostPersist and PostRemove methods will be invoked after the database insert and delete operations respectively. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:71435.2These 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
truetechnologyactivefalse
PERSISTENCE:SPEC:71535.2Generated primary key values are available in the PostPersist method.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:71635.2The PreUpdate and PostUpdate callbacks occur before and after the database update operations to entity data respectively. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:71735.2These database operations may be at the time the entity state is updated or it may be at the time state is flushed to the database which may be at the end of a transaction.true
truetechnologyactivefalse
PERSISTENCE:SPEC:71835.2Note it is implementation-dependent as to whether PreUpdate and PostUpdate callbacks occur when an entity is created 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
truetechnologyactivefalse
PERSISTENCE:SPEC:71935.2The PostLoad method is invoked after an entity has been loaded into the current persistence context from the database.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:72035.2This PostLoad method is invoked before a query result is returned or accessed or before an association is traversed.true
truetechnologyactivetrue
PERSISTENCE:SPEC:72135.2It 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.true
truetechnologyactivefalse
PERSISTENCE:SPEC:72235.4Default 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:72335.4The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:72435.4If 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:72535.4The 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 on the entity listener classes for the superclasses of the entity or maped supeclass. The excluded listeners are excluded from the class to which the ExcludeSuperclassListeners annotation is specified and its subclasses.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:72635.4Excluded listeners may reintroduced on an entity class by listing them explicitly in the EntityListeners annotation or XML entity-listeners element.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:72735.4The ExcludeSuperclassListeners or exclude-superclass-listeners XML element does not cause the default entity listeners to be excluded from invocation.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:72836The elements of a query result whos SELECT clause consists of more than one value are of type Object[].true
falsetechnologyactivetrue
PERSISTENCE:SPEC:72936An IllegalArgumentException is thrown if:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:73036a parameter name is specified that does not correspond to a named parameter in the query stringtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:73136a positional value is specified that does not correspond to a positional parameter in the query stringtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:73236If the type of the parameter is not valid for the query. This exception may be thrown when the parameter is bound, or the execution of the query may fail.true
truetechnologyactivetrue
PERSISTENCE:SPEC:73336This exception may be thrown when the parameter is bound, or the execution of the query may fail.true
truetechnologyactivetrue
PERSISTENCE:SPEC:73436.2A named parameter is an identifier that is prefixed by the ":" symbol.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:73536.4By default, all queries are polymorphic.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:73636.5The 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
truetechnologyactivetrue
PERSISTENCE:SPEC:73736.5The use of named parameters is not defined for native queries. Only positional parameter binding may be portably used.false
truetechnologyactivetrue
PERSISTENCE:SPEC:73837Summary of Exceptionstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:73937PersistenceExceptiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:74037TransactionRequiredExceptiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:74137RollbackExceptiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:74237EntityExistsExceptiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:74337EntityNotFoundExceptiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:74437NoResultExceptiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:74537NonUniqueResultExceptiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:74642An query language statement may be either:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:746.142a select statementtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:746.242an update statementtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:746.342a delete statementtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:75042Any query language statement may be constructed dymically or may be statically defined in a metadata annotation or XML descriptor element.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:75142All query language statement types may have parameters.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:75242.1An query language select statement is a string which consists of the following clauses:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:75342.1a SELECT clause, which determines the type of the objects or values to be selected.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:75442.1a FROM clause, which provides declaration that designate the domain to which the expressions specified in the other clauses of the query applytrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:75542.1an optional WHERE clause, which may be used to restrict the results that are returned by the querytrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:75642.1an optional GROUP BY clause, which allows query results to be aggregated in terms of groupstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:75742.1an optional HAVING clause, which allows filtering over aggregated groupstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:75842.1an optional ORDER BY clause, which may be used to order the results that are returned by the querytrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:31242.1A select statement must always have a SELECT and a FROM clause.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:75942.2Update 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. Compatibility Note: Update and delete statements are not supported for EJB 2.1 entity beans with container-managed persistence.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:76043The abstract schema type of an entity is derived from the entity class and the metadata information provided by Java Language annotations or in the XML descriptor.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:76143The domain of a query consists of the abstract schema types of all entities that are defined in the same persistence unit.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:76243.1The abstract schema name is defined by the name element of the Entity annotation (or entity-name XML descriptor element), and defaults to the unqualified name of the entity class.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:31744Identification variables designate instances of a particular entity abstract schema type. The FROM clause can contain multiple identification variable declarations separated by a comma:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:317.144range_variable_declaration true
falsetechnologyactivetrue
PERSISTENCE:SPEC:317.244collection_member_declaration true
falsetechnologyactivetrue
PERSISTENCE:SPEC:317.344join_spectrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:31644.1Reserved identifiers are case insensitive.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:76344.1Reserved identifiers must not be used as identification variables.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:76444.2All identification variables must be declared in teh FROM clause. Identification variables cannot be declared in other clauses.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:31844.2An identification variable must not be a reserved identifier or have the same name as any of the followng in the same persistence unit:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:318.344.2entity name (as defined by the Entity annotation or entity-name XML deployment descriptor elementtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:31944.2Identification variables are case insensitive.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:32044.3In 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:32244.4A single_valued_association_field is designated by the name of an association-field in a one-to-one or many-to-one relationship. The type of a single_valued_association_field and thus a single_valued_association_path_expression is the abstract schema type of the related entity.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:32344.4A collection_valued_association_field is designated by the name of an association-field in a one-to-many or a many-to-many relationship. The type of a collection_valued_association_field is a collection of values of the abstract schema type of the related entity.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:32544.4A path expression that ends in a simple state-field, rather than an embedded class, is terminal and cannot be further composed.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:32644.4A path expression that leads to an association-field may be further composed. Path expressions can be composed from other path expression if the original path expression evaluates to a single-valued type (not a collection) corresponding to an association-field.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:32844.4The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:32944.4Path 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:76544.4The syntax for single-valued path expressions and collection valued path expression is as follows:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:76644.4single_valued_path_expression ::= state_field_path_expression | single_valued_association_path_expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:76744.4state_field_path_expression ::= {identification_variable | single_valued_association_path_expression}.state_fieldtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:76844.4single_valued_association_path_expression ::= identification_variable.{single_valued_association_field.}*single_valued_association_fieldtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:76944.4collection_valued_path_expression ::= identification_variable.{single_valued_association_field.}*collection_valued_association_fieldtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:77044.4state_field := simple_state_field | {embedded_class_state_field.}*simple_state_fieldtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:77144.4Navigation to a related entity results in a value of the related entity's abstract schema type.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:77244.4The evaluation of a path expression terminating in a state-field results in the abstract schema type corresponding to the Java type designated by the state-field.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:77344.5An 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:77444.5The syntax for explicit join operations is as follows:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:77544.5join ::= join_spec association_path_expression [AS] identification_variabletrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:77644.5fetch_join ::= join_spec FETCH association_path_expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:77744.5association_path_expression ::= collection_valued_path_expression | single_valued_association_path_expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:77844.5join ::= join_spec::=[LEFT [OUTER] | INNER] JOINtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:77944.5.1The syntax for the inner join operation is: [INNER] JOIN association_path_expression [AS] identification_variabletrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:78044.5.2LEFT 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 association_path_expression [AS] identification_variabletrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:78144.5.3A FETCH JOIN enables the fetching of an association as a side effect of the execution of a query. A FETCH JOIN is specified over an entity and its related entities. The syntax for a fetch join is: fetch_join ::= [LEFT [OUTER] | INNER ] JOIN FETCH association_path_expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:78244.5.3The association referenced by the right side of the FETCH JOIN clause must be an association that belongs to an entity that is returned as a result of the query. It is not permitted to specify an identification variable for the entities referenced by the right side of the FETCH JOIN clause, and hence references to the implicitly fetched entities cannot appear elsewhere in the query.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:32144.6An 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:78344.6The path expression evaluates to a collection type specified as a result of navigation to a collection-valued association-field of an entity abstract schena type.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:78444.8Java Persistence queries are automatically polymorphic. The FROM clause of a query designates not only instances of the specific entity class(es) to which explictly refers but of subclasses as well. The instances returned by a query include instances of the subclasses that satisfy the query criteria.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:78545The WHERE clause restricts the result set of a select statement or the scope of an update or delete operation. A WHERE clause is defined as follows: where_clause ::= WHERE conditional_expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:33046.1A string literal is enclosed in single quotes. A string literal that includes a single quote is represented by two single quotes. EJB-QL string literals are like Java String literals in that they use unicode character encoding. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:33146.1An exact numeric literal is a numeric value without a decimal point. Exact numeric literals support numbers in the range of Java long. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:33246.1Although predefined reserved literals appear in upper case, they are case insensitive.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:33346.1An approximate numeric literal is a value in scientific notation. Approximate numeric literal support numbers in the range of Java double. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:33446.1The boolean literals are TRUE and FALSE. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:78646.2All identification variables used in the WHERE or HAVING clause of a SELECT or DELETE statement must be declared in the FROM clause. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:78746.2The identification variables used in the WHERE clause of an UPDATE statement must be declared in the UPDATE clause. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:78846.3It 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 or collection_member_expression, or as an argument to the SIZE operator. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:33646.4If an input parameter is NULL, arithmetic operations involving the input parameter will return an UNKNOWN value true
falsetechnologyactivetrue
PERSISTENCE:SPEC:33746.4If an input parameter is NULL, comparison operations involving the input parameter will return an UNKNOWN value. NOTE: Duplicate assertion to: PERSISTENCE:SPEC:342. Recheck tagged test code and remedy list accordingly. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:33846.4.1Input parameters are numbered starting from 1true
falsetechnologyactivetrue
PERSISTENCE:SPEC:34146.4.1An input parameter evaluates to the abstract schema type of the corresponding parameter defined in the signature of the finder or select method with which the query is associated. It is the responsible of the Container to map the input parameter to the appropriate abstract schema type value.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:78946.4.2A named parameter is an identifier that is prefixed by the ":" symbol. It follows the rules for identifiers in Section 3.4.1.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:34246.4Note that if an input parameter is Null, comparison operations involving the input parameter will return an unknown value.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:34346.4Note that if an input parameter is Null, arithmetic operations involving the input parameter will return an unknown value.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:34446.5Arithmetic operations use numeric promotion.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:34546.5Conditional expressions are composed of other conditional expressions, comparison operators, logical operations, path expressions that evaluate to boolean values and boolean literals.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:34646.5Standard bracketing for ordering expression evaluation is supported.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:34746.5Arithmetic expressions can be used in comparison expressions.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:34846.6Operators and Operator Precedence. The operators listed below in order of descreasing precedence.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:348.146.6Navigation Operatortrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:348.246.6Arithmetic Operators (+,- unary - *,/ multiplication, division - +.- addition, substraction)true
falsetechnologyactivetrue
PERSISTENCE:SPEC:348.346.6Comparison Operatorstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:348.446.6Logical Operators: NOT, AND, ORtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:34946.7The 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-exprtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:349.146.7string_expression [NOT] BETWEEN string-expression AND string-expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:349.246.7datetime_expression [NOT] BETWEEN datetime-expression AND datetime-expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:35046.7The BETWEEN expression x BETWEEN y and z is semantically equivalent to: y less than = x AND x less than = z true
falsetechnologyactivetrue
PERSISTENCE:SPEC:35146.8If the value of a state_field_path_expression in an IN or NOT IN expression is NULL or UNKNOWN, the value of the expression is UNKNOWN. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:35246.8The syntax for the use of the comparison operator IN in a conditional expression is as follows: state_field_path_expression [NOT] IN({literal | input parameter} [, {literal | input_parameter}]*} | subquery). The state_field_path_expression must have a string or numeric value.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:352.146.8The literal and/or input parameter values must be like the same abstract schema type of the state_field_path_expression in type.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:352.246.8The results of the subquery must be like the same abstract schema type of the state_field_path_expression in type.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:35346.8There must be at least one element in the comma separated list that defines the set of values for the IN expression.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:35446.8The expression o.country IN ('UK', 'US', 'France') is equivalent to the expression (o.country = 'UK') OR (o.country = 'US') OR (o.country = 'France')true
falsetechnologyactivetrue
PERSISTENCE:SPEC:35546.8The expression o.country NOT IN ('UK', 'US', 'France') is equivalent to the expression NOT (o.country = 'UK') OR (o.country = 'US') OR (o.country = 'France')true
falsetechnologyactivetrue
PERSISTENCE:SPEC:35646.9If the value of a single-valued path expression or pattern_value is NULL or UNKNOWN, the value of the LIKE expression is UNKNOWN. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:35746.9If the escape_character is specified as a NULL, the value of the LIKE expression is iunknown.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:35846.9The syntax for the use of the comparison operator [NOT] LIKE in a conditional expression is as follows: state_field_path_expression [NOT] LIKE pattern-value [ESCAPE escape-character]. The state_field_path_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 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:35946.10The syntax for the use of the comparison operator IS [NOT] NULL in a conditional expression is as follows: single_valued_path_expression | input parameter IS [NOT] NULL. A null comparison expression tests whether or not the single valued path expression is a NULL value.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:36046.11The collection designated by the collection-valued path expression used in an empty collection comparison expression must not be used in the FROM clause for the declaration of an identification variable.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:36146.11The syntax for the use of the comparison operator IS [NOT] EMPTY in an empty_collection_comparison_expression is as follows: collection_valued_path_expression IS [NOT] EMPTY This expression tests whether or not the collection designated by the collection-valued path expression is empty (that is, it has no elements). true
falsetechnologyactivetrue
PERSISTENCE:SPEC:36246.11If 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:36346.12The syntax for the use of the comparison operator MEMBER OF in a collection_member_expression is as follows: entity_expression [NOT] MEMBER [OF] collection_valued_path_expression. entity_expression::= This expression tests whether the designated value is a member of the collection designated by the collection-valued path expression.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:363.146.12single_valued_association_path_expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:363.246.12identification variabletrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:361.146.12input_parametertrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:36446.12If the value of the collection-valued path expression or single-valued association-field path expression in the collection member expression is NULL, the value of the collection member expression is unknown.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:36546.12If the collection valued path expression designates an empty collection, the value of the the MEMBER OF expression is FALSE and the value of the NOT MEMBER OF expression is TRUE.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:36646.12If the value of the single-valued association-field path expression in the collection member expression is unknown, the value of the empty comparison expression is unknown. If the collection valued path expressiuon designates an empty collection, the value of the expression is FALSE.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:79146.13An 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:79246.13The syntax of an exists expression is: exists_expression::= [NOT] EXISTS (subquery)true
falsetechnologyactivetrue
PERSISTENCE:SPEC:79346.14An ALL conditional expression is a predicate that is true if the comparison operation is true for all values in the result of the subquery, and that is otherwise false. If the result of the subquery is empty, the ALL condition is true.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:79446.14An ANY conditional expression is a predicate that is true if the comparison operation is true for all values in the result of the subquery, and that is otherwise false.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:79546.14The keyword SOME is synonymous with ANY.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:79646.14If the result of the subquery is empty, the ANY or SOME condition is false.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:79746.14The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:79846.14The syntax of an ALL or ANY expression is specified as follows: all_or_any_expression ::= {ALL | ANY | SOME} (subquery)true
falsetechnologyactivetrue
PERSISTENCE:SPEC:79946.15Subqueries may be used in the WHERE or HAVING clause.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:80046.15The syntax for subqueries is as follows.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:80146.15subquery ::= simple_select_clause from_clause [where_clause] [groupby_clause] [having_clause]true
falsetechnologyactivetrue
PERSISTENCE:SPEC:80246.15simple_select_clause ::= SELECT [DISTINCT] select_expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:36746.16If the value of any argument to a functional expression is NULL or UNKNOWN, the value of the functional expression is UNKNOWN.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:36946.16.1Java Persistence QL includes the following built-in String functions which may be used in the WHERE clause of a query. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:369.146.16.1CONCAT(string_expression, string_expression). The CONCAT function returns a string that is a concatenation of its arguments.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:369.246.16.1SUBSTRING(string_expression, arithmetic expression, arithmetic-expression). The second and third argument of the SUBSTRING denote the starting position and length of the substring to be returned. These arguments are integers. The firstd position of a string is denoted by 1. The SUBSTRING function returns a string.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:369.346.16LOCATE(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. (NOTE: Not all databases support the use of the third argument to LOCATE; use of this argument may result in queries that are not portable.) true
falsetechnologyactivetrue
PERSISTENCE:SPEC:369.446.16.1LENGTH(string_expression). The LENGTH function returns the length of the string in characters as an integer.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:369.946.16.1TRIM([[trim_sepcification] [trim_character] FROM] string_expression). trim_specification ::=[LEADING | TRAILING | BOTH] The TRIM function trims the specified character from a string.If the character to be trimmed is note specified, it is assumed to be space (or blank). The optional trim_character is a single-character string liuteral or character-valued input parameter (i.e. char or Character). The TRIM function returns the trimmed string.(NOTE: Not all databases support the use of the trim_character other than a space character; use of this argument may result in queries that are not portable.) true
falsetechnologyactivetrue
PERSISTENCE:SPEC:369.1046.16.1LOWER(string_expression). The LOWER function converts a string to upper case. LOWER returns a string.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:369.1146.16.1UPPER (string_expression). The UPPER function converts a string to upper case. UPPER returns a string.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:36946.16.2Java Persistence QL includes the following built-in Arithmetic functions which may be used in the WHERE clause of a query: true
falsetechnologyactivetrue
PERSISTENCE:SPEC:369.546.16.2ABS(arithmetic_expression). The ABS function takes a nueric argument and returns a number (integer, float, double) of the same type as the argument to the function.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:369.646.16.2SQRT(arithmetic_expression). The SQRT function takes a nuneric argument and returns a double.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:369.746.16.2MOD(arithmetic_expression, arithmetic_expression). The MOD function takes two integer argumetns and returns an integer.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:369.846.16.2SIZE(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
falsetechnologyactivetrue
PERSISTENCE:SPEC:36846.16.2Numeric arguments to these functions may correspond to the numeric Java object types as well as the primitive numeric types.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:80347The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:80447The syntax of the GROUP BY and HAVING clauses is as follows:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:80547groupby_clause ::= GROUP BY groupby_item[,groupby_item]*true
falsetechnologyactivetrue
PERSISTENCE:SPEC:80647groupby_item ::= state_field_path_expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:80747having_clause ::= HAVING conditional_expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:80847If 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 cluase causes those groups to be retained that satisfy the conditiona of the HAVING clause.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:80947If there is no GROUP BY clause and the HAVING clause is used, the effect is that of treating the result fo the query as a single group. The use of HAVING in the absence of GROUP BY is not required to be supported by an implementataion of this specification. Portable applications should not rely on HAVING without the use of GROUP BY.false
truetechnologyactivefalse
PERSISTENCE:SPEC:81047The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:81148The SELECT clause denotes the query result. More than one value may be returned from the SELECT clause of a query.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:37248The SELECT clause may contain one or more of the following elements:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:372.148a single range variabletrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:372.248identification variable that ranges over an entity abstract schema typetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:372.348a single-valued path expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:372.448an aggregate select expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:372.548a constructor expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:81448The SELECT clause has the following syntax:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:81548select_clause ::= SELECT [DISTINCT] select_expression[,select_expression]*true
falsetechnologyactivetrue
PERSISTENCE:SPEC:81648select_expression ::= {single_valued_path_expression | aggregate_select_expression | identification_variable | OBJECT(identification variable) | constructor_expressiontrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:81748constructor_expression ::= NEW constructor_name([single_valued_path_expression | aggregate_select_expression} [,{single_valued_patch_expression | aggregate_select_expression}]*)true
falsetechnologyactivetrue
PERSISTENCE:SPEC:81848aggregate_select_expression ::= {AVG | MAX | MIN | SUM | COUNT}([DISTINCT] state_field_path_expression) | COUNT ([DISTINCT] identification_variable | single_valued_association_path_expression)true
falsetechnologyactivetrue
PERSISTENCE:SPEC:37348All standalone identification variables in the SELECT clause may optionally be qualified by the OBJECT operator.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:37448The DISTINCT keyword is used to specify that duplicate values must be eliminated from the query result.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:37148If the query is specified for a method whose result type is java.util.Set, but does not specify DISTINCT, the container must interpret the query as if SELECT DISTINCT had been specified.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:41348 If the query is specified for a method whose return type is java.util.Collection, the collection of values returned by the Container may contain duplicates if DISTINCT is not specified in the SELECT clause.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:40648.1The 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 an aggregate function, the result of a construction operation, or some sequence of these. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:40848.1The result of the SELECT clause is defined by the result types of the select_expressions contained in it. When multiple select_expressions are used in the SELECT clause, the result of the query is of type Object[] and the elements in this result correspond in order to the order of their specification in the SELECT caluse and in type to the result types of each select_expressions.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:40948.1The result type of the select_expression is a single_valued_path_expression that is a state_field_path_expression results in an object of the same type as the corresponding state field of the entity. If the state field of the entity is a primitive type, the corresponding object type is returned.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:41048.1The result type of the select_expression is a single_valued_path_expression that is a single_valued_association_path_expression results in an entity object of the type as the relationship field or the subtype of the relationship field of the entity as determined by the o/r mapping.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:39448.1The result type of an identification_variable is type of the entity to which that identification variable corresponds or a subtype as determined by the o/r mapping.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:39548.1The result type of a constructor_expression is the type of the class for which the constructor is defined.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:81948.2A constructor expression may be used in the SELECT list to return a collection of Java instances. The specified class is not required to be an entity or to be mapped to the database.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:82048.2If an entity name is specified in the SELECT NEW clause, the resulting entity instances are in the new state.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:37548.3If 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:37648.2The IS NOT NULL construct can be used to eliminate the null from the result set of the query.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:37948.2Note, 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:38048.4The aggregate function AVG can be used in the SELECT clause of an query.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:38148.4The aggregate function MIN can be used in the SELECT clause of an query.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:38248.4The aggregate function MAX can be used in the SELECT clause of an query.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:38348.4The aggregate function SUM can be used in the SELECT clause of an query.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:38448.4The aggregate COUNT function can be used in the SELECT clause of an query.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:38948.4The path expression argument to COUNT may terminate in a state-field.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:39048.4The path expression argument to COUNT may terminate in a association-field.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:39148.4The argument to COUNT may be an identification variable.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:82148.4Arguments to the functions SUM and AVG must be numeric.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:82248.4Arguments 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:82348.4The Java type that is contained in the result of a query using an aggregate function is as follows [with 3.0 entities]:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:82448.4COUNT returns longtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:82548.4MAX, MIN return the type of the state-field to which they are appliedtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:82648.4AVG returns Doubletrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:82748.4SUM 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:82848.4If 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:82948.4If COUNT is used, and there are no values to which COUNT can be applied, the result of the aggregate function is 0.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:39248.4The 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. (NOTE: It is legal to specify DISTINCT with MAX or MIN but it does not affect the result.)true
falsetechnologyactivetrue
PERSISTENCE:SPEC:39348.4Null values are eliminated before the aggregate function is applied regardless whether the keyword DISTINCT is specified.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:39949When Order By clause is used, the SELECT clause of the query MUST be one of the followingtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:399.149a single_valued_association_path_expression. For a single_valued_association_path_expression, each orderby_item MUST be an orderable state-field of the entity bean abstract schema type value returned by the SELECT clause true
falsetechnologyactivetrue
PERSISTENCE:SPEC:399.249an Identification Variable. For an identification variable, each orderby_item MUST be an orderable state-field of the entity bean abstract schema type value returned by the SELECT clause true
falsetechnologyactivetrue
PERSISTENCE:SPEC:399.349a state_field_path_expression. For state_field_path_expression, the orderby_item MUST evaluate to the same state-field of the same entity bean abstract schema type as the state_field_path_expression in the SELECT clause. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:40049If 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:40149The keyword ASC specifies that ascending order is used. DEFAULT.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:40249The keyword DESC specified that descending order is used.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:40349SQL 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 before all non-null values in the ordering, but it is not specified which.true
truetechnologyactivetrue
PERSISTENCE:SPEC:40449The ordering of the query result is preserved in the result of the query method if the ORDER BY clause is used.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:834410Bulk 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:835410A delete operation only applies to entities of the specified class and its subclasses. It does not cascade to related entities.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:836410The syntax of these operations are as follows:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:837410update_statement ::=update_clause[where_clause]true
falsetechnologyactivetrue
PERSISTENCE:SPEC:838410update_clause ::=UPDATE abstract_schema_name[[AS] identification_variable] SET update_item {,update_item}*true
falsetechnologyactivetrue
PERSISTENCE:SPEC:839410update_item ::=[identification_variable].state_field=new_valuetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:840410delete_statement ::=delete_clause [where_clause]true
falsetechnologyactivetrue
PERSISTENCE:SPEC:841410delete_clause ::= DELETE FROM abstract_schema_name [[AS] identificationo_variable]true
falsetechnologyactivetrue
PERSISTENCE:SPEC:415411Two NULL values are not considered to be equal, the comparison yield an UNKNOWN value.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:416411Comparison operations with a NULL value always yield an UNKNOWN value.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:417411Comparison operations with an UNKNOWN value always yield an UNKNOWN value.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:418411Arithmetic operators with a NULL value always yield an UNKNOWN value.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:419411Arithmetic operators with an UNKNOWN value always yield an UNKNOWN value.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:422411The IS NOT NULL operators convert a NULL state-field into the respective TRUE or FALSE value.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:423411The IS NOT NULL operators convert a NULL single-valued-association-field into the respective TRUE or FALSE value.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:424411Boolean operators use three valued logic: Table 7: Definition of the AND Operatortrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:425411Boolean operators use three valued logic: Table 8: Definition of the OR Operatortrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:426411Boolean operators use three valued logic: Table 9: Definition of the NOT Operatortrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:427412Two entities of the same abstract schema type are equal if and only if they have the same primary key value.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:428412Only equality/inequality comparisons over enums are required to be supported.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:430412Only the values of like types can be compared. There is one exception to this rule: it is valid to compare numeric values for which the rule of numeric promotion apply. Conditional expression attempting to compare non-like type values are disallowed except for this numeric case.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:84251Both container-managed and application-managed entity managers and their persistence contexts are required to be supported in JavaEE web containers and EJB containers.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:84351In Java SE 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:84452A container-managed entity manager is obtained by the application through dependency injection or through JNDI lookup.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:84552.1The PersistenceContext annotation is used for entity manager injection.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:84652.1The unitName element may optionally be specified to designate the persistence unit whose factory is used by the container.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:84752.1The type element specifies whether a transaction-scoped or extended persistence context is to be used.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:84853The EntityManagerFactory interface is used to create an application-managed entity manager and manage its lifecycle.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:84953More than one entity manager factory instance may be available simultaneously in the JVM.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:85053.1Within a JavaEE environment, an entity manager factory may be injected using the PersistenceUnit annotation or obtained through JNDI lookup.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:85153.2Outside 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
falsetechnologyactivefalse
PERSISTENCE:SPEC:85254The EntityManagerFactoryInterface is the interface used by the application to create a new application-managed entity manager or to get a provider-managed entity manager that is bound to the current JTA transaction context. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:85354 When the application has finished using the entity manager factory, and/or at application shutdown, the application should close the entity manager factory.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:85454Any number of vendor-specific properties may be included in the map passed to createEntityManager. Properties not recognized by a vendor must be ignored.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:85555An 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:85655Both JTA entity managers and resource-local entity managers are required to be supported in JavaEE web and EJB containers.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:85755In general, in JavaSE environments, only resource-local entity managers are supported.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:85855Container-managed entity managers must be a JTA entity manager. JTA entity managers are only specified for use in JavaEE containers.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:85955.1Application-managed entity managers may either be JTA or resource-local entity managers.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:86055.2.1An entity manager whose transactions are controlled by the application through the EntityTransaction API is a resource-local entity manager. The EntityManager.getTransaction() method returns the EntityTransaction Interface.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:86156When 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:86256.1Container-managed Transaction-scoped Persistence Context: A new persistence context begins when a 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 then associated with the current JTA transaction.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:86356.1Container-managed Transaction-scoped Persistence Context: The persistent context ends when the associated JTA transaction completes and al entites that were managed by the EntityManager become detached.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:86456.1Container-managed Transaction-scoped Persistence Context: If the entity manager is invoked outside the scope of a transaction, a persistence context is created and destroyed to service the method call only and any entities loaded from the database will immediately become detached at the end of the method call.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:86556.2Container-managed Extended Persistence Context: An extended persistence context exists from the point at which the stateful session bean declares a dependency on an entity manager of type PersistenceContextType.EXTENDED is created and bound to the stateful session bean. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:86656.2Container-managed Extended Persistence Context: The dependency on the extended persistence context is declared by means of the PersistenceContext annoation or the persistence-context-ref deployment descriptor element. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:86756.2Container-managed Extended Persistence Context can only be initiated within the scope of a stateful session bean.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:86856.2.1If a stateful session bean with an extended persistence context instantiates another stateful session bean with an extended persistence context, the extended persistence context 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:86956.2.1IIf 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:87056.3The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:87156.3.1If a component is called and there is no JTA transaction or the JTA transaction is not propagated, the persistence context is not propagated.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:87256.3.1If an entity manager is invoked from within the component:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:87356.3.1Invocation of an entity manager defined with PersistsenceContextType.TRANSACTION will result in use of a new persistence context.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:87456.3.1Invocation 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:87556.3.1If the entity manager is invoked within a JTA transaction the persistence context will be boud to the JTA transaction.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:87656.3.1If a component is called and the JTA transaction is propagated into that component:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:87756.3.1If 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:87856.3.1Otherwise, if there is a persistence context bound to the JTA transaction, that persistence context is propagated and used.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:87957Application-managedPersistence Context: When an applicatio-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 may span multiple transactions.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:88057The EntityManager close and isOpen methods are used to manage the lifecycle of an application-managed entity manager and its associated persistence context.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:88157The EntityManager.close() closes the entity manager to release its persistence context and any other resources. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:88257After calling close, the application must not invoke any further methods on the EntityManager instance except for getTransaction or IsOpen or the IllegalStateException will be thrown.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:88357If the close method is invoked when a transaction is active, the persistence context remains managed until the transaction completes.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:88454The EntityManager.isOpen() method will return true unless the entity manager has been closed.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:88557Application-managed Extended Persistence Context: The extended persistence context exists from the point at which the entity manager hs been created using EntityManagerFactory.createEntityManager until the entity manager is closed by the means of EntityManager.close. The extended persistence context obtained from the application-managed entity manager is a stand-alone persistence context - it is not propagated with the transaction.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:88657When 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 associate the entity manager with the transaction, if desired, by calling EntityManager.joinTransaction.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:88758Requirements on the Containertrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:88858.1Application Managed Persistence Contextstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:88958.2Container Managed Persistence Contextstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:89059 Runtime Contracts between the Container and Persistence Providertrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:89159.1Container Responsibilitiestrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:89259.2Provider Responsibilitiestrue
truetechnologyactivetrue
PERSISTENCE:SPEC:89362Within JavaEE environments, an EJB-JAR, WAR, or EAR can define a persistence unit. Any number of persistence archives may be deployed within an EJB-JAR, WAR, or EAR.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:89462A persistence unit may be packaged:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:89562within one or more jar files contained within a WARtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:89662one or more jar files contained within an EARtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:89762as a set of classes within an EJB-JAR filetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:89862a set of classes in the WAR classes directorytrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:89962as a combination of thesetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:90062A persistence unit is defined by a persistence.xml file. The jar file or directory whose META-INF directory contains the persistence.xml is termed the root of the persistence unit. In Java EE, the root of a persistence unit may be one of the following:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:90162an EJB-JAR filetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:90262the 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:90362a jar file in the WEB-INF/lib directory of a WAR filetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:90462a jar file in the root of the EARtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:90562a jar file in the EAR lib directorytrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:90662an application client jar filetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:90762It is not required that na EJB-JAR or WAR 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:90862A persistence unit must have a name.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:90962Only one persistence unit of any given name may be defined:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:91062within a single EJB-JAR filetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:91162within a single WAR filetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:91262within a single application client jartrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:91362within an EAR in the EAR roottrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:91462within an EAR in the lib directorytrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:91562The persistence.xml file may be used to designate more thanone persistnece unit within the same scope.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:91662All persistence classes defined at the level of the Java EE EAR must be accessible to all other J2EE components in the application 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:91762In 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 inclulded in the persistence unit.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:91862The persistence.xml file defines a persistence unit. It may be used to specify managed persistence classes included in the persistence unit, and the o/r mapping information for those classes, and other configuration information for the persistence unit and entity manager(s) and the entity manager factory for the persistence unit. The persistence.xml file is located in the META-INF directory of the root of the persistence unit. This information may be defined by containment or by reference.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:91962.1The o/r mapping information may take the form of:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:92062.1annotations on the managed persistence classes included in the persistence unittrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:92162.1one or more XML files contained in the root of the persistence unittrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:92262.1one or more XML files outside the persistence archive on the classpath and referenced from the persistence.xmltrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:92362.1a combination of abovetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:92462.1The managed persistence classes may either be:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:92562.1contained within the persistence archivetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:92662.1specified by reference that are accessible on the application classpath true
falsetechnologyactivetrue
PERSISTENCE:SPEC:92762.1specified by come combination of abovetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:92862.1The persistence element consists of one or more persistence-unit elements.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:92962.1The persistence-unit element consists of the following sub-elements and attributes:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:93062.1.1The name attribute is required; the other attributes and elements are optional.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:93162.1.1The description element provides optional descriptive information about the persistence unit.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:93262.1.2The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:93362.1.3The provider element specifies the name of the persistence provider's jakarta.persistence.spi.PersistenceProvider class. true
falsetechnologyactivefalse
PERSISTENCE:SPEC:93462.1.3The provider element must be specified if a third-party provider implementation is used.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:93562.1.3In J2SE environments, the persistence provider must be specified [either by this means or vendor-specific-means].true
falsetechnologyactivefalse
PERSISTENCE:SPEC:93662.1.4The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:93762.1.4The value of this element is JTA or RESOURCE_LOCAL.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:93862.1.4IIf this element is not specified, the default is JTA.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:93962.1.5In Java EE environments, the jta-data-source and non-jta-data-source elements is used to specify the global JNDI name of the JTA and/or non-JTA data source to be used by the persistence provider.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:94062.1.5If neither is specified, the deployer must specify a JTA datasource at deployment or a JTA data source must be provided by the container and a JTA EntityManagerFactory will be created to correspond to it.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:94162.1.5These 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
truetechnologyactivefalse
PERSISTENCE:SPEC:94262.1.5In Java SE environments, these elements may be used or the datasource information may be specified by other means - depending upon the requirements of the provider.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:94362.1.6The 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.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:94462.1.6The set of classes that are managed by a persistence unit is defined by using one or more of the following:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:94562.1.6One or more o/r mapping XML filetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:94662.1.6One or more jar files that will be searched for classestrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:94762.1.6An explicit list of the classestrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:94862.1.6The annotated managed persistence classes contained in the root of the persistence unit (unless the exclude-unlisted-classes element is specified)true
falsetechnologyactivetrue
PERSISTENCE:SPEC:94962.1.6An orm.xml file:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:95062.1.6may be specified in the META-INF directory in the root of the persistence unittrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:95162.1.6or in the META-INF directory of any jar file referenced by the persistence.xmltrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:95262.1.6and/or one or more mapping files may be referenced by the mapping-file elements of the persistence-unit element [of the persistence.xml file]true
falsetechnologyactivetrue
PERSISTENCE:SPEC:95362.1.6If a mapping file is specified, the classes and mapping information specified in the mapping file will be used.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:95462.1.6If multiple mapping files are specified (possibly including an orm.xml file), the resulting mappings are obtained by combining the mappings from all the filestrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:95562.1.6The result is undefined if multiple mappings referenced within a single persistence unit contain overlapping mapping information for any given class.false
truetechnologyactivefalse
PERSISTENCE:SPEC:95662.1.6The o/r mapping information contained in any mapping file referenced within the persistence unit must be disjoint at the class level from o/r mapping information contained in any other such mappings.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:95762.1.6One 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 root of the persistence unit.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:95862.1.6A list of named managed persistence classes may also be specified instead of, or in addition to, the JAR files and mapping files. Any mapping metadata annotations found on them will be processed or they will be mapped using the mapping annotation defaults defined by this specification.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:95962.1.6The class element is used to list a managed persistence class.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:96062.1.6A 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 my also 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
falsetechnologyactivefalse
PERSISTENCE:SPEC:96162.1.6All classes contained in the persistence unit are also searched for annotated managed persistence classes and any mapping metadata annotations found on them will be processed, or they will be mapped using the mapping annotation defaults.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:96262.1.6If it is not intended that the annoted persistence classes contained in the root of the persistence unit be included in the persistence unit, the exclude-unlisted-classes should be used. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:96362.1.6The exclude-unlisted-classes element is not intended for use in Java SE environments.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:96462.1.6The resulting set of entities managed by the persistence unit is the union of these four 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:96662.1.6All classes and/or jars that are named as part of a persistence unit must be on the classpath; referencing them from the persistence.xml does not cause them to be placed on the classpath.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:96762.1.6All 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
falsetechnologyactivefalse
PERSISTENCE:SPEC:96862.1.7The properties element is used to specify vendor-specific properties that apply to the persistence unit and its entity manager factory configurations.true
truetechnologyactivefalse
PERSISTENCE:SPEC:96962.1.7If a persistence provider does not recognize properties (other than those defined by this specification), the provider must ignore those properties.true
truetechnologyactivetrue
PERSISTENCE:SPEC:97062.2An EJB-JAR, WAR, application client or EAR can define a persistence unit. The visibility of the persistence unit is determined by its point of definition.true
truetechnologyactivetrue
PERSISTENCE:SPEC:97162.2A 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-client jar respectively. It is visible to the components defined in that jar or war, but is not visible as a persistence unit to other parts of the application.true
truetechnologyactivetrue
PERSISTENCE:SPEC:97262.2A persistence unit that is to be visible to the application as whole must be defined at EAR level (in EAR root or in the lib directory).true
truetechnologyactivetrue
PERSISTENCE:SPEC:97362.2A 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 defiend by an EJB-JAR, WAR or application client 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.true
truetechnologyactivetrue
PERSISTENCE:SPEC:97471Each 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:97571.1At deployment time the container is responsible for scanning locations specified in 6.2 and discovering the persistence.xml files and processing them.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:97671.1When the container finds a persistence.xml file, it processes the persistence unit definitions that it contains. Provider or data source information not specified in the persistence.xml file must be provided at deployment or defaulted by the container.true
truetechnologyactivetrue
PERSISTENCE:SPEC:97771The container may optionally add its own container-specific properties to be passed to the provider when creating the entity manager factory for the persistence unit.false
truetechnologyactivefalse
PERSISTENCE:SPEC:97871When a persistence unit is redeployed the container must call the createContainerEntityManagerFactory method again, with the required PersistenceUnitInfo metadata, to indicate the redeployment.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:97971.2The persistence provider must implement the PersistenceProvider SPI and be able to process the metadata that is passed to it at the time createContainerEntityManagerFactory method is called.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:98071.2An instance of EntityManagerFactory is created and the metadata for the named EntityManager is associated with the factory. The factory is then returned to the container.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:98171.3The interface jakarta.persistence.spi.PersistenceProvider is implemented by the persistence provider.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:98271.3It is invoked by the container in Java EE environments.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:98371.3It is invoked by the jakarta.persistence.Persistence class in Java SE environments.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:98471.3It is not intended to be used by the application.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:98571.3The PersistenceProvider class must have a public no-arg constructor.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:98671..3.1Persistence unit properties may be passed to persistence providers in the Map parameter of the createEntityManagerFactory(String, Map) method. These properties correspond to the elements of 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 persistene unit. They also override any defaults that the provider may have applied.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:98771.3.1The properties listed below are defined by this specification.true
falsetechnologyactivefalse
PERSISTENCE:SPEC:98871.3.1jakarta.persistence.provider - corresponds to the provider element in the persistence.xmltrue
falsetechnologyactivefalse
PERSISTENCE:SPEC:98971.3.1jakarta.persistence.transactionType - corresponds to the transaction-type attribute of the persistence-unit element in the persistence.xmltrue
falsetechnologyactivefalse
PERSISTENCE:SPEC:99071.3.1jakarta.persistence.jtaDataSource - corresponds to the jta-data-source element in the persistence.xmltrue
falsetechnologyactivefalse
PERSISTENCE:SPEC:99171.3.1jakarta.persistence.nonJtaDataSource - corresponds to the jnon-ta-data-source element in the persistence.xmltrue
falsetechnologyactivefalse
PERSISTENCE:SPEC:99272BootStrapping in Java SE Environmentstrue
truetechnologyactivetrue
PERSISTENCE:SPEC:99381Entity Annotationtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:99481The name annotation element defaults to the unqualified name of the entity class.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:99581This name [annotation element] is used to refer to the entity in queries. The name must not be a reserved literal in the query.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:99782Callback Annotationstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:99882The EntityListener annotation specifies the callback listener class to be used for an entity.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:99982The callback annotations [see Persistence JavaDoc assertion list] are used to specify callbackmethods for the corresponding lifecycle events. These annotations may be applied to methods on the entity class or methods of the EntityListener class.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:100483.2The NamedQuery annotation is used to specify a named query. The name element is used to refer to the query when using the EntityManager methods that create query objects.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:100583.2The NamedNativeQuery annotation is used to specify a native SQL query. The name element is used to refer to the query when using the EntityManager methods that create query objects.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:100683.2The [NamedNativeQuery] resultClass element refers to the class of the result.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:100783.2The value of the [NamedNativeQuery] resultSetMapping element is the name of a SQLResultSetMapping as defined in the metadata.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:100883.4Annotations for SQL Query Result Set Mappingstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:100983.4The SqlResultSetMapping is used to specify the mapping of the result of a native SQL query.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:101083.4The name element is the name given to the result set mapping and used to refer to it in the methods of the Query API.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:101183.4The entities and columns elements are used to specify the mapping to entities and to scalar values respectively.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:101283.4The entityClass element specified the class of the result.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:101383.4The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:101483.4The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:101583.4The name element [of FieldResult] is the name of the persistent field or property of the class.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:101683.4The column element [of FieldResult] is the column name (or alias) as specified in the SELECT list.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:101884References to EntityManager and EntityManagerFactorytrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:101984The PersistenceContext annotation is used to express a dependency on an EntityManager persistence context.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:102084The [PersistenceContext] name element refers to the name by which the EntityManager is to be known in the environment referencing context and is not needed when dependency injection is used.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:102184The [PersistenceContext] unitName element refers to the name of the persistence unit. It must be specified if there is more than one persistence unit.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:102284The [PersistenceContext] type element specifies whether a transaction-scoped or extended persistence context is to be used.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:102384The PersistenceUnit annotation is used to express a dependency on an EntityManagerFactory.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:102484The [PersistenceUnit] name element refers to the name by which the EntityManagerFactory is to be known in the environment referencing context and is not needed when dependency injection is used.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:102584The [PersistenceUnit unitName element refers to the name of the persistence unit. It must be specified if there is more thatn one persistence unit.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:102691The implementation of this specification must assume the application logic to be dependent upon the object/relational mapping expressed in metadata.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:102791It is permitted, but not required, that DDL generation be supported by an implementation of this specification. The annotation elements that specify such DDL are intended as hints to the implementation for DDL generation. Use of such hings is not portable.false
truetechnologyactivetrue
PERSISTENCE:SPEC:102891.1The Table annotation specifies the primary table for the annotated entity.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:1028.191.1If no Table annotation is specified for an entity, all of the default values defined by the Table annotation will apply to the entity.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:102991.2Specifying one or more secondary tables indicates that the entity data is stored across multiple tables. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:103091.2If no SecondaryTable is specified, it is assumed that all properties of the entity are mapped to the primary table.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:103191.2If no join column is specified, the join columns are assumed to reference the primary key columns of the primary table and have the same names as the referenced columns.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:103291.2If there is a single secondary table, the join column or columns may be specified outside the SecondaryTable annotation.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:103391.2If there are multiple secondary tables and the join columns are not uniformly named, then the nested JoinColumn annotation will be required.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:103491.2Note that the secondaryTable element of the JoinColumn annotation will be ignored whtn the JoinColumn element is used to join a primary table to a secondary table.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:103591.3An entity may have multiple secondary tables. In this case, they must be enclosed within a SecondaryTables annotation. A SecondaryTables annotation takes an array of SecondaryTable annotations as its single annotation element.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:103691.4The UniqueConstraint annotation is used to specify that a unique constraint should be included in the generated DDL for a primary or secondary table. It is only specified as a nested annotation within the Table or SecondaryTable annotation.false
truetechnologyactivetrue
PERSISTENCE:SPEC:103791.5Column annotation is used to specify a mapped column for a persistent property or field. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:1037.191.5 If a Column annotation is not specified, or the name annotation element is missing, the column name defaults to the persistent property or field name.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:103891.6The JoinColumn annotation is used to specify a mapped column for joining an entity association or a secondary table.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:103991.6The name annotation element defines the name of the foreign key column.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:104091.6If the referencedColumnName element is missing, the foreign key is assumed to refer to the primary key of the referenced table.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:104191.6If 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:104291.6If no JoinColumn annotation is specified, a single join column is assumed.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:104391.6If there is a single join column, then:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:104491.6If the name annotation element is missing, the join column name is formed as 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:104591.6If the referencedColumnName element is missing, the foreign key is assumed to refer t the primary key of the referenced table.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:104691.6If there is more than one join column, a JoinColumn annotation myust be specified for each join column. Both the name and referencedColumnName elements must be specified in each such JoinColumn annotation.false
truetechnologyactivetrue
PERSISTENCE:SPEC:104791.6Support for referenced columns that are not the primary key of the referenced table is optional in this release, but will be required in the next.false
truetechnologyactivetrue
PERSISTENCE:SPEC:104891.7Composite keys are supported via the JoinColumns annotation. This allows grouping a number of JoinColumn specifications for the same relationship or table association.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:104991.8The Id annotation specifies the primary key property or field of an entity. The Id annotatoin may be applied in an entity or mapped superclass.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:105091.8By default, 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:105191.9The types of the primary key generation are defined by the GenerationType enum.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:105291.9The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:105391.9The SEQUENCE and IDENTITY values specify the use of a database sequence or identity column, respectively.true
truetechnologyactivetrue
PERSISTENCE:SPEC:105591.9AUTO indicates that the persistence provider should pick an appropriate strategy for the particular database.true
truetechnologyactivetrue
PERSISTENCE:SPEC:105791.9The 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 field of an entity or mapped superclass in conjunction with the Id annotation. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:105991.10The AttributeOverride annotation is used to override mappings of a Basic property or field or Id property or field.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:106091.10Columns in the overrides apply to the current primary table for the class that contains the annotation.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:106191.10The AttributeOverride annotation may be used on an entity that extends a mapped superclass or on an embeddable class.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:106291.11The mappings of multiple properties or fields may be overridden. The AttributesOverrides annotation is used for this purpose.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:1062.091.11The AssociationOverride annotation is used to override a many-to-one or one-to-one mapping of property or field for an entity relationship.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:1062.191.11If the AssociationOverride annotation is not specified, the join column is mapped the same as in the original mapping. The joinColumns element refers to the table for the class that contains the annotation.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:106391.14The EmbeddedId annotation is used to denote a composite primary key that is an embeddable class. It may be applied to a persistent field or property of the entity class.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:106491.14There should only be one EmbeddedId annotation and no Id annotation when the EmbeddedId annotation is used.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:106591.15The IdClass annotation is used to denote a composite primary key. It is applied to the entity class. The composite primary key class corresponds to multiple fields or properties of the entity class and the names of the primary key fields or properties in the primary key class and those of the entity class must correspond and their types must be the same.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:106691.15The Id annotation must also be applied to the corresponding fields or properties of the entity.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:106791.16The Transient annotation is used to annotate a property or field of the entity class. It specifies the property or field is not persistent.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:106891.17The Version annotation is a marker annotation that keeps track of the version property (optimistic lock value) of an entity class. This is used to ensure integrity when reattaching and for overall optimistic concurrency control.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:106991.18The Basic annotation is the simplest type of mapping to a database column. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:107091.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following type: Java primitive typestrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:107191.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following type: java.lang.Stringtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:107291.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following types: wrappers of the primitive typestrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:107391.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following type: byte[]true
falsetechnologyactivetrue
PERSISTENCE:SPEC:107491.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following type: Byte[]true
falsetechnologyactivetrue
PERSISTENCE:SPEC:107591.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following type: char[]true
falsetechnologyactivetrue
PERSISTENCE:SPEC:107691.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following type: Character[]true
falsetechnologyactivetrue
PERSISTENCE:SPEC:107791.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following type: java.math.BigIntegertrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:107891.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following type: java.math.BigDecimaltrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:107991.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following type: java.util.Datetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:108091.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following type: java.util.Calendartrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:108191.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following type: java.sql.Datetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:108291.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following type: java.sql.Timetrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:108391.18The Basic annotation can optionally be applied to any persistent property or instance variable of the following type: java.sql.TimeStamptrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:108491.18The [FetchType] LAZY strategy is a hint to the persistence provider runtime that data should be fetched lazily when it is first accessed.true
truetechnologyactivetrue
PERSISTENCE:SPEC:108591.18The implementation is permitted to eagerly fetch data for which the LAZY strategy hint hasd been specified.true
truetechnologyactivetrue
PERSISTENCE:SPEC:108691.18For Basic properties, lazy fetching might only be available for properties which are always accessed via the get/set pair.true
truetechnologyactivetrue
PERSISTENCE:SPEC:108791.18The optional element can be used a a hint as to whether the value of the field or property may be null. true
truetechnologyactivefalse
PERSISTENCE:SPEC:108891.18[The optional element] is disregarded for primitive types, which are considered non-optional. true
falsetechnologyactivetrue
PERSISTENCE:SPEC:108991.19A Lob annotation specifies that a persistent property or field should be persisted as a large object to a database-supported large object type.true
truetechnologyactivetrue
PERSISTENCE:SPEC:1090.091.20The Temporal annotation must be specified for persistent fields or properties of type java.util.Date and java.util.Calendar. It may only be specified for fields or properties of those types.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:1090.191.21The Enumerated annotation specifies that a persistent property or field should be persisted as enumerated type.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:1090.291.21An enum can be mapped as either string or integer. The EnumType enum defines the mapping for enumerated types.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:1090.391.21If the enumerated type is not specified or the Enumerated annotation is not used, the enumerated type is assumed to be ORDINAL.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:109091.22The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:109191.22The cascade set will cause the specified cascadable operations to be propagated to the associated entity.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:109291.22Multiple operations may be included in the [cascade] set.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:109391.22The value cascade=ALL is equivalent to cascade={PERSIST, MERGE, REMOVE, REFRESH}.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:109491.23The OneToOne annotation defines a single-valued association to another entity class that ha s a one-to-one multiplicity. It is not normally necessary to specify the name of the associated target entity explicitly since it can usually b e inferred from the type of the object being referenced.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:109591.24The 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 type need not be specified. If a regular Collection or Set is used then the target entity of the class must be included.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:109691.24Unidirectional one-to-many relationships may be implemented using one-to-many foreign key mappings, however, such support is not required in this release. Applications that want to use a foreign key mapping strategy for one-to-many relationships should make these relationships bidirectional to ensure portability.false
truetechnologyactivetrue
PERSISTENCE:SPEC:109791.25A JoinTable annotation s used in the mapping of associations. A JoinTable annotation is specified on the owning side of a many-to-many association, or in a uni-directional one-to-many association. The JoinTable annotation is missing, 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:109891.26The ManyToMany annotation defines a many-valued association with many-to-many multiplicity. If the Collection is defined using generics to specify the element type then the associated target entity type need not be specified. If a regular Collection or Set is used then the target entity of the class must be included.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:109991.26Every many-to-many association has two sides, the owning side and the non-owning or inverse side. The association table is specified on the owning side.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:110091.27The MapKey annotation is used to specify the map key for associations of type java.util.Map.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:110191.27The name element [of the MapKey annotation] designates the name of the persistent field or property of the associated entity that is used as the map key. If name is not specified, by default the primary key is used as the map key.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:110291.27If 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:110391.28The OrderyBy annnotation specifies the ordering of the elements of a collection valued associate at the point when the association is retrieved.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:110491.28The syntax of the ordering element is as follows:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:110591.28ORDER BY orderby_listtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:110691.28orderby_list::=orderby_item[,orderby_item]*true
falsetechnologyactivetrue
PERSISTENCE:SPEC:110791.28orderby_item::=property_or_field_name[ASC|DESC]true
falsetechnologyactivetrue
PERSISTENCE:SPEC:110891.28If ASC or DESC is not specified, ASC (ascending order) is assumed.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:110991.28The property or field name must correspond to that of a persistent property or field of the associated class.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:111091.28The properties or fields used in the ordering must correspond to columns for which comparison operators are supported.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:111191.28The OrderyBy annnotation specifies the ordering of the elements of a collection valued associate at the point when the association is retrieved.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:111291.29The Inheritance annotation defines the inheritance strategy to be used for an entity class hierarchy. The three inheritance mapping strategies are:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:111391.29Single Table per Class Hierarchytrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:111491.29Table per Class [NOTE: Support for TABLE_PER_CLASS mapping strategy is optional in this release but will be required in the next.]false
truetechnologyactivetrue
PERSISTENCE:SPEC:111591.29Joined Subclasstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:111691.29For the SINGLE_TABLE mapping strategy, the persistence provider will use a discriminator column. The supported discriminator types are defined by the DiscriminatorType enum: STRING, CHAR, INTEGER.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:111891.30The strategy and discriminatorType are only specified once per class hierarchy (in the root class), while the discriminatorValue should be specified for each class in the hierarchy.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:111991.29If no inheritance type is specified for a class hierarchy, the single table per class hierarchy strategy is used.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:112691.30The DiscriminatorColumn annotation is used to define the discriminator column for SINGLE_TABLE and JOINED inheritance mapping strategies.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:1126.191.30The DiscriminatorColumn annotation can be specified on an entity class (including on an abstract entity class).true
falsetechnologyactivetrue
PERSISTENCE:SPEC:1126.291.30If 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:1126.391.31The 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. 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:1126.491.31If 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
truetechnologyactivetrue
PERSISTENCE:SPEC:112091.32The PrimaryKeyJoinColumn annotation specifies the primary key columns that are used as a foreign key to join to another table.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:112191.32The PrimaryKeyJoinColumn annotated is used:true
falsetechnologyactivetrue
PERSISTENCE:SPEC:112291.32to join the primary table of an entity subclass in the JOINED mapping strategy to the primary table of its superclasstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:112391.32in a OneToOne mapping in which the primary key of the referencing entity is used as a foreign key to the referenced entity.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:112491.32If no PrimaryKeyJoinColumn annotation is specified, the foreign key columns are assumed to have the same names as the primary key columns of the primary table of the superclass.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:112591.33Composite keys are supported via the PrimaryKeyJoinColumns annotation.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:112791.34The Embeddable annotation is used to mark an object that is stored as an intrinisic part of an owning entity and shares the identify of that entity.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:112891.34Each 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:112991.35The 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:113091.36The MappedSuperclass annotation designates an embedded superclass A class designated as an embedded superclass has no separate table defined for it. Its mapping informationis applied to the entities that inherit from it.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:113191.36A class designated as MappedSuperclass can be mapped in the same way as an entity except that the mappings will apply only to its subcllesses since not table exits for the embedded superclass.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:113291.36When applied to the subclasses the inherited mappings will apply in the context of the subclass tables.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:113391.36Mapping information may be overridden in such subclasses by using the AttributreOverride annotation.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:113491.37The SequenceGenerator annotation defines a primary key or id generator which may be referenced by name when annotation the id attribute.true
truetechnologyactivefalse
PERSISTENCE:SPEC:113591.37A 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
truetechnologyactivefalse
PERSISTENCE:SPEC:113691.38The TableGenerator annotation defines a primary key or id generator which may be referenced by name when annotation the id attribute.true
falsetechnologyactivetrue
PERSISTENCE:SPEC:113791.38A 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
falsetechnologyactivetrue
PERSISTENCE:SPEC:1138101XML Overriding Rulestrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:1139101.1persistent-unit-defaults Subelementstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:1140101.2Other Subelements of the entity-mapping elementtrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:1141101.3Entity Subelementstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:1142101.4mapped-superclass Subelementstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:1143101.5Embeddable Subelementstrue
falsetechnologyactivetrue
PERSISTENCE:SPEC:1144102XML Schematrue
falsetechnologyactivetrue