All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.persistence.PessimisticLockScope Maven / Gradle / Ivy

// $Id: $
// EJB3 Specification Copyright 2004-2009 Sun Microsystems, Inc.
package javax.persistence;

/**
 * Defines the values of the javax.persistence.lock.scope
 * property for pessimistic locking.  This property may be passed as
 * an argument to the methods of the {@link EntityManager},
 * {@link Query}, and {@link TypedQuery} interfaces that
 * allow lock modes to be specified or used with the
 * {@link NamedQuery} annotation.
 *
 * @since Java Persistence 2.0
 */
public enum PessimisticLockScope {
	/**
	 * This value defines the default behavior for pessimistic locking.
	 * 

* The persistence provider must lock the database row(s) that * correspond to the non-collection-valued persistent state of * that instance. If a joined inheritance strategy is used, or if * the entity is otherwise mapped to a secondary table, this * entails locking the row(s) for the entity instance in the * additional table(s). Entity relationships for which the locked * entity contains the foreign key will also be locked, but not * the state of the referenced entities (unless those entities are * explicitly locked). Element collections and relationships for * which the entity does not contain the foreign key (such as * relationships that are mapped to join tables or unidirectional * one-to-many relationships for which the target entity contains * the foreign key) will not be locked by default. */ NORMAL, /** * In addition to the behavior for * PessimisticLockScope.NORMAL, element collections * and relationships owned by the entity that are contained in * join tables will be locked if the * javax.persistence.lock.scope property is specified * with a value of PessimisticLockScope.EXTENDED. * The state of entities referenced by such relationships will not * be locked (unless those entities are explicitly locked). * Locking such a relationship or element collection generally locks only * the rows in the join table or collection table for that * relationship or collection. This means that phantoms will be * possible. */ EXTENDED }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy