Jump to: navigation, search

EclipseLink/Examples/JPA/PessimisticLocking

< EclipseLink‎ | Examples‎ | JPA
Revision as of 09:57, 15 June 2010 by James.sutherland.oracle.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


EclipseLink allows users the option of using pessimistic locking on their queries. In JPA 1.0 this can be done through the use of a query hint.

Pessimistic locking is also supported in JPA 2.0 using the LockMode on a Query.

See:

  • org.eclipse.persistence.config.QueryHints
  • org.eclipse.persistence.config.PessimisticLock
  • Configuring a Locking Policy in the EclipseLink User's Guide

Via Annotations

@Entity
@Table(name="JPA_EMPLOYEE")
@NamedQuery(
  name="findEmployeeByPK",
  query="SELECT OBJECT(employee) FROM Employee employee WHERE employee.id = :id"),
  hints={
    @QueryHint(
      name=QueryHints.PESSIMISTIC_LOCK, 
      value=PessimisticLock.Lock)
  }
)
public class Employee implements Serializable {
...
 
}

Via XML

<entity name="Employee" class="org.eclipse.testing.Employee" access="PROPERTY">
  ...
  <named-query name="findEmployeeByPK">
    <query>SELECT OBJECT(employee) FROM Employee employee WHERE employee.id = :id</query>
    <hint name="eclipselink.pessimistic-lock" value="Lock">
  </named-query>
  ...
</entity>