blob: 5632d20edb6c13199cb37838b9da71f292d5106b [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_222) on Tue Dec 08 12:28:21 UTC 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>FieldsLockingPolicy (EclipseLink 3.0.0, API Reference)</title>
<meta name="date" content="2020-12-08">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="FieldsLockingPolicy (EclipseLink 3.0.0, API Reference)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":6,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":6,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">EclipseLink 3.0.0, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/eclipse/persistence/descriptors/FetchGroupManager.html" title="class in org.eclipse.persistence.descriptors"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/eclipse/persistence/descriptors/InheritancePolicy.html" title="class in org.eclipse.persistence.descriptors"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/persistence/descriptors/FieldsLockingPolicy.html" target="_top">Frames</a></li>
<li><a href="FieldsLockingPolicy.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.persistence.descriptors</div>
<h2 title="Class FieldsLockingPolicy" class="title">Class FieldsLockingPolicy</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.persistence.descriptors.FieldsLockingPolicy</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../org/eclipse/persistence/descriptors/AllFieldsLockingPolicy.html" title="class in org.eclipse.persistence.descriptors">AllFieldsLockingPolicy</a>, <a href="../../../../org/eclipse/persistence/descriptors/ChangedFieldsLockingPolicy.html" title="class in org.eclipse.persistence.descriptors">ChangedFieldsLockingPolicy</a>, <a href="../../../../org/eclipse/persistence/descriptors/SelectedFieldsLockingPolicy.html" title="class in org.eclipse.persistence.descriptors">SelectedFieldsLockingPolicy</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">FieldsLockingPolicy</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</pre>
<div class="block"><p><b>Purpose</b>: An abstract superclass of some implementations of the OptimisticLockingPolicy
interface. All of the subclasses of this class implement OptimisticLocking
based on mapped fields in the object. These fields are only compared and not modified.
Any modification (incrementing etc..) must be handled by the application.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/eclipse/persistence/descriptors/AllFieldsLockingPolicy.html" title="class in org.eclipse.persistence.descriptors"><code>AllFieldsLockingPolicy</code></a>,
<a href="../../../../org/eclipse/persistence/descriptors/ChangedFieldsLockingPolicy.html" title="class in org.eclipse.persistence.descriptors"><code>ChangedFieldsLockingPolicy</code></a>,
<a href="../../../../org/eclipse/persistence/descriptors/SelectedFieldsLockingPolicy.html" title="class in org.eclipse.persistence.descriptors"><code>SelectedFieldsLockingPolicy</code></a>,
<a href="../../../../serialized-form.html#org.eclipse.persistence.descriptors.FieldsLockingPolicy">Serialized Form</a></dd>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Peter Krogh</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>TopLink 2.1</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</h3>
<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy.LockOnChange</code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.eclipse.persistence.internal.helper.DatabaseField&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#allNonPrimaryKeyFields">allNonPrimaryKeyFields</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../org/eclipse/persistence/descriptors/ClassDescriptor.html" title="class in org.eclipse.persistence.descriptors">ClassDescriptor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#descriptor">descriptor</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#FieldsLockingPolicy--">FieldsLockingPolicy</a></span>()</code>
<div class="block">PUBLIC:
Create a new field locking policy.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#addLockFieldsToUpdateRow-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.internal.sessions.AbstractSession-">addLockFieldsToUpdateRow</a></span>(org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;Record,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
Add update fields for template row.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#addLockValuesToTranslationRow-org.eclipse.persistence.queries.ObjectLevelModifyQuery-">addLockValuesToTranslationRow</a></span>(<a href="../../../../org/eclipse/persistence/queries/ObjectLevelModifyQuery.html" title="class in org.eclipse.persistence.queries">ObjectLevelModifyQuery</a>&nbsp;query)</code>
<div class="block">INTERNAL:
Values to be included in the locking mechanism are added
to the translation row.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#buildAllNonPrimaryKeyFields--">buildAllNonPrimaryKeyFields</a></span>()</code>
<div class="block">INTERNAL:
Returns the fields that should be compared in the where clause.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/eclipse/persistence/expressions/Expression.html" title="class in org.eclipse.persistence.expressions">Expression</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#buildDeleteExpression-org.eclipse.persistence.internal.helper.DatabaseTable-org.eclipse.persistence.expressions.Expression-org.eclipse.persistence.internal.sessions.AbstractRecord-">buildDeleteExpression</a></span>(org.eclipse.persistence.internal.helper.DatabaseTable&nbsp;table,
<a href="../../../../org/eclipse/persistence/expressions/Expression.html" title="class in org.eclipse.persistence.expressions">Expression</a>&nbsp;mainExpression,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;row)</code>
<div class="block">INTERNAL:
When given an expression, this method will return a new expression with the optimistic
locking values included.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/eclipse/persistence/expressions/Expression.html" title="class in org.eclipse.persistence.expressions">Expression</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#buildExpression-org.eclipse.persistence.internal.helper.DatabaseTable-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.expressions.ExpressionBuilder-">buildExpression</a></span>(org.eclipse.persistence.internal.helper.DatabaseTable&nbsp;table,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;transRow,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;modifyRow,
<a href="../../../../org/eclipse/persistence/expressions/ExpressionBuilder.html" title="class in org.eclipse.persistence.expressions">ExpressionBuilder</a>&nbsp;builder)</code>
<div class="block">INTERNAL:
returns the expression to be used in both the delete and update where clause.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/eclipse/persistence/expressions/Expression.html" title="class in org.eclipse.persistence.expressions">Expression</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#buildUpdateExpression-org.eclipse.persistence.internal.helper.DatabaseTable-org.eclipse.persistence.expressions.Expression-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.internal.sessions.AbstractRecord-">buildUpdateExpression</a></span>(org.eclipse.persistence.internal.helper.DatabaseTable&nbsp;table,
<a href="../../../../org/eclipse/persistence/expressions/Expression.html" title="class in org.eclipse.persistence.expressions">Expression</a>&nbsp;mainExpression,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;transRow,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;modifyRow)</code>
<div class="block">INTERNAL:
This method must be included in any locking policy.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#clone--">clone</a></span>()</code>
<div class="block">INTERNAL:
Clone the policy</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#compareWriteLockValues-java.lang.Object-java.lang.Object-">compareWriteLockValues</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value1,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value2)</code>
<div class="block">INTERNAL:
This method shouldn't be called if supportsWriteLockValuesComparison() returns false.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.eclipse.persistence.internal.helper.DatabaseField&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#getAllNonPrimaryKeyFields--">getAllNonPrimaryKeyFields</a></span>()</code>
<div class="block">INTERNAL:
Returns the fields that should be compared in the where clause.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.eclipse.persistence.internal.helper.DatabaseField&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#getAllNonPrimaryKeyFields-org.eclipse.persistence.internal.helper.DatabaseTable-">getAllNonPrimaryKeyFields</a></span>(org.eclipse.persistence.internal.helper.DatabaseTable&nbsp;table)</code>
<div class="block">INTERNAL:
filter the fields based on the passed in table.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#getBaseValue--">getBaseValue</a></span>()</code>
<div class="block">INTERNAL:
This is the base value that is older than all other values, it is used in the place of
null in some situations.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.eclipse.persistence.internal.helper.DatabaseField&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#getFieldsToCompare-org.eclipse.persistence.internal.helper.DatabaseTable-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.internal.sessions.AbstractRecord-">getFieldsToCompare</a></span>(org.eclipse.persistence.internal.helper.DatabaseTable&nbsp;table,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;transRow,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;modifyRow)</code>
<div class="block">INTERNAL:
Returns the fields that should be compared in the where clause.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy.LockOnChange</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#getLockOnChangeMode--">getLockOnChangeMode</a></span>()</code>
<div class="block">ADVANCED:
returns the LockOnChange mode for this policy.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#getValueToPutInCache-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.internal.sessions.AbstractSession-">getValueToPutInCache</a></span>(org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;row,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
Return the value that should be stored in the identity map.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#getVersionDifference-java.lang.Object-java.lang.Object-java.lang.Object-org.eclipse.persistence.internal.sessions.AbstractSession-">getVersionDifference</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;currentValue,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;domainObject,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;primaryKeys,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
Return the number of version difference between the two states of the object.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>org.eclipse.persistence.internal.helper.DatabaseField</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#getWriteLockField--">getWriteLockField</a></span>()</code>
<div class="block">INTERNAL:
Return the write lock field.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../org/eclipse/persistence/expressions/Expression.html" title="class in org.eclipse.persistence.expressions">Expression</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#getWriteLockUpdateExpression-org.eclipse.persistence.expressions.ExpressionBuilder-org.eclipse.persistence.internal.sessions.AbstractSession-">getWriteLockUpdateExpression</a></span>(<a href="../../../../org/eclipse/persistence/expressions/ExpressionBuilder.html" title="class in org.eclipse.persistence.expressions">ExpressionBuilder</a>&nbsp;builder,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#getWriteLockValue-java.lang.Object-java.lang.Object-org.eclipse.persistence.internal.sessions.AbstractSession-">getWriteLockValue</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;domainObject,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;primaryKey,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
This method will return the optimistic lock value for the object</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#initialize-org.eclipse.persistence.internal.sessions.AbstractSession-">initialize</a></span>(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
It is responsible for initializing the policy;</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#initializeProperties--">initializeProperties</a></span>()</code>
<div class="block">INTERNAL:
It is responsible for initializing the policy;</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#isCascaded--">isCascaded</a></span>()</code>
<div class="block">PUBLIC:
Return true if the policy uses cascade locking.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#isNewerVersion-org.eclipse.persistence.internal.sessions.AbstractRecord-java.lang.Object-java.lang.Object-org.eclipse.persistence.internal.sessions.AbstractSession-">isNewerVersion</a></span>(org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;Record,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;domainObject,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;primaryKey,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
Compares the value from the row and from the object
(or cache).</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#isNewerVersion-java.lang.Object-java.lang.Object-java.lang.Object-org.eclipse.persistence.internal.sessions.AbstractSession-">isNewerVersion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;currentValue,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;domainObject,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;primaryKey,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
Compares the value and the value from the object
(or cache).</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#isPrimaryKey-org.eclipse.persistence.internal.helper.DatabaseField-">isPrimaryKey</a></span>(org.eclipse.persistence.internal.helper.DatabaseField&nbsp;dbField)</code>
<div class="block">INTERNAL:
Returns whether or not this field is a primary key.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#isStoredInCache--">isStoredInCache</a></span>()</code>
<div class="block">PUBLIC:
Return true if the lock value is stored in the cache.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#mergeIntoParentCache-org.eclipse.persistence.internal.identitymaps.CacheKey-org.eclipse.persistence.internal.identitymaps.CacheKey-">mergeIntoParentCache</a></span>(org.eclipse.persistence.internal.identitymaps.CacheKey&nbsp;unitOfWorkCacheKey,
org.eclipse.persistence.internal.identitymaps.CacheKey&nbsp;parentSessionCacheKey)</code>
<div class="block">INTERNAL:
This method should merge changes from the parent into the child.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#mergeIntoParentCache-org.eclipse.persistence.internal.sessions.UnitOfWorkImpl-java.lang.Object-java.lang.Object-">mergeIntoParentCache</a></span>(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;uow,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;primaryKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object)</code>
<div class="block">INTERNAL:
Only applicable when the value is stored in the cache.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#setAllNonPrimaryKeyFields-java.util.List-">setAllNonPrimaryKeyFields</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&nbsp;allNonPrimaryKeyFields)</code>
<div class="block">INTERNAL: Set method for all the primary keys</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#setDescriptor-org.eclipse.persistence.descriptors.ClassDescriptor-">setDescriptor</a></span>(<a href="../../../../org/eclipse/persistence/descriptors/ClassDescriptor.html" title="class in org.eclipse.persistence.descriptors">ClassDescriptor</a>&nbsp;descriptor)</code>
<div class="block">INTERNAL: Set method for the descriptor</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#setLockOnChangeMode-org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy.LockOnChange-">setLockOnChangeMode</a></span>(org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy.LockOnChange&nbsp;lockOnChangeMode)</code>
<div class="block">ADVANCED:
Sets the LockOnChange mode for this policy.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#setupWriteFieldsForInsert-org.eclipse.persistence.queries.ObjectLevelModifyQuery-">setupWriteFieldsForInsert</a></span>(<a href="../../../../org/eclipse/persistence/queries/ObjectLevelModifyQuery.html" title="class in org.eclipse.persistence.queries">ObjectLevelModifyQuery</a>&nbsp;query)</code>
<div class="block">INTERNAL:
Put the initial writelock value into the modifyRow.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#shouldUpdateVersionOnMappingChange--">shouldUpdateVersionOnMappingChange</a></span>()</code>
<div class="block">INTERNAL:
Returns true if the policy has been set to set an optimistic read lock when any mapping changes.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#shouldUpdateVersionOnOwnedMappingChange--">shouldUpdateVersionOnOwnedMappingChange</a></span>()</code>
<div class="block">INTERNAL:
Returns true if the policy has been set to set an optimistic read lock when a owning mapping changes.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#supportsWriteLockValuesComparison--">supportsWriteLockValuesComparison</a></span>()</code>
<div class="block">INTERNAL:
Indicates whether compareWriteLockValues method is supported by the policy.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#updateRowAndObjectForUpdate-org.eclipse.persistence.queries.ObjectLevelModifyQuery-java.lang.Object-">updateRowAndObjectForUpdate</a></span>(<a href="../../../../org/eclipse/persistence/queries/ObjectLevelModifyQuery.html" title="class in org.eclipse.persistence.queries">ObjectLevelModifyQuery</a>&nbsp;query,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;domainObject)</code>
<div class="block">INTERNAL:
Nothing to do because all updates are handled by the application</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#validateDelete-int-java.lang.Object-org.eclipse.persistence.queries.DeleteObjectQuery-">validateDelete</a></span>(int&nbsp;rowCount,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object,
<a href="../../../../org/eclipse/persistence/queries/DeleteObjectQuery.html" title="class in org.eclipse.persistence.queries">DeleteObjectQuery</a>&nbsp;query)</code>
<div class="block">INTERNAL:
Check the row count for lock failure.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#validateUpdate-int-java.lang.Object-org.eclipse.persistence.queries.WriteObjectQuery-">validateUpdate</a></span>(int&nbsp;rowCount,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object,
<a href="../../../../org/eclipse/persistence/queries/WriteObjectQuery.html" title="class in org.eclipse.persistence.queries">WriteObjectQuery</a>&nbsp;query)</code>
<div class="block">INTERNAL:
Check the row count for lock failure.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/descriptors/FieldsLockingPolicy.html#verifyUsage-org.eclipse.persistence.internal.sessions.AbstractSession-">verifyUsage</a></span>(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
throw an exception if not inside a unit of work at this point</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="descriptor">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>descriptor</h4>
<pre>protected&nbsp;<a href="../../../../org/eclipse/persistence/descriptors/ClassDescriptor.html" title="class in org.eclipse.persistence.descriptors">ClassDescriptor</a> descriptor</pre>
</li>
</ul>
<a name="allNonPrimaryKeyFields">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>allNonPrimaryKeyFields</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.eclipse.persistence.internal.helper.DatabaseField&gt; allNonPrimaryKeyFields</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="FieldsLockingPolicy--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FieldsLockingPolicy</h4>
<pre>public&nbsp;FieldsLockingPolicy()</pre>
<div class="block">PUBLIC:
Create a new field locking policy.
A field locking policy is based on locking on a subset of fields by comparing with their previous values to detect field-level collisions.
Note: the unit of work must be used for all updates when using field locking.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="addLockFieldsToUpdateRow-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addLockFieldsToUpdateRow</h4>
<pre>public&nbsp;void&nbsp;addLockFieldsToUpdateRow(org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;Record,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:
Add update fields for template row.
These are any unmapped fields required to write in an update.
Since all fields are mapped, there is nothing required.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>addLockFieldsToUpdateRow</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="addLockValuesToTranslationRow-org.eclipse.persistence.queries.ObjectLevelModifyQuery-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addLockValuesToTranslationRow</h4>
<pre>public abstract&nbsp;void&nbsp;addLockValuesToTranslationRow(<a href="../../../../org/eclipse/persistence/queries/ObjectLevelModifyQuery.html" title="class in org.eclipse.persistence.queries">ObjectLevelModifyQuery</a>&nbsp;query)</pre>
<div class="block">INTERNAL:
Values to be included in the locking mechanism are added
to the translation row. Set the translation row to all the original field values.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>addLockValuesToTranslationRow</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="buildAllNonPrimaryKeyFields--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildAllNonPrimaryKeyFields</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&nbsp;buildAllNonPrimaryKeyFields()</pre>
<div class="block">INTERNAL:
Returns the fields that should be compared in the where clause.
In this case, it is all the fields, except for the primary key
and class indicator fields.
This is called during lazy initialization.</div>
</li>
</ul>
<a name="buildDeleteExpression-org.eclipse.persistence.internal.helper.DatabaseTable-org.eclipse.persistence.expressions.Expression-org.eclipse.persistence.internal.sessions.AbstractRecord-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildDeleteExpression</h4>
<pre>public&nbsp;<a href="../../../../org/eclipse/persistence/expressions/Expression.html" title="class in org.eclipse.persistence.expressions">Expression</a>&nbsp;buildDeleteExpression(org.eclipse.persistence.internal.helper.DatabaseTable&nbsp;table,
<a href="../../../../org/eclipse/persistence/expressions/Expression.html" title="class in org.eclipse.persistence.expressions">Expression</a>&nbsp;mainExpression,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;row)</pre>
<div class="block">INTERNAL:
When given an expression, this method will return a new expression with the optimistic
locking values included. The values are taken from the passed in database row.
This expression will be used in a delete call.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>buildDeleteExpression</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="buildExpression-org.eclipse.persistence.internal.helper.DatabaseTable-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.expressions.ExpressionBuilder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildExpression</h4>
<pre>protected&nbsp;<a href="../../../../org/eclipse/persistence/expressions/Expression.html" title="class in org.eclipse.persistence.expressions">Expression</a>&nbsp;buildExpression(org.eclipse.persistence.internal.helper.DatabaseTable&nbsp;table,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;transRow,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;modifyRow,
<a href="../../../../org/eclipse/persistence/expressions/ExpressionBuilder.html" title="class in org.eclipse.persistence.expressions">ExpressionBuilder</a>&nbsp;builder)</pre>
<div class="block">INTERNAL:
returns the expression to be used in both the delete and update where clause.</div>
</li>
</ul>
<a name="buildUpdateExpression-org.eclipse.persistence.internal.helper.DatabaseTable-org.eclipse.persistence.expressions.Expression-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.internal.sessions.AbstractRecord-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildUpdateExpression</h4>
<pre>public&nbsp;<a href="../../../../org/eclipse/persistence/expressions/Expression.html" title="class in org.eclipse.persistence.expressions">Expression</a>&nbsp;buildUpdateExpression(org.eclipse.persistence.internal.helper.DatabaseTable&nbsp;table,
<a href="../../../../org/eclipse/persistence/expressions/Expression.html" title="class in org.eclipse.persistence.expressions">Expression</a>&nbsp;mainExpression,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;transRow,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;modifyRow)</pre>
<div class="block">INTERNAL:
This method must be included in any locking policy. When given an
expression, this method will return a new expression with the optimistic
locking values included. The values are taken from the passed in database row.
This expression will be used in a delete call.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>buildUpdateExpression</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="clone--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clone</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;clone()</pre>
<div class="block">INTERNAL:
Clone the policy</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>clone</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="supportsWriteLockValuesComparison--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>supportsWriteLockValuesComparison</h4>
<pre>public&nbsp;boolean&nbsp;supportsWriteLockValuesComparison()</pre>
<div class="block">INTERNAL:
Indicates whether compareWriteLockValues method is supported by the policy.
Numeric or timestamp lock values could be compared:
for every pair of values v1 and v2 - either v1&lt;v2; or v1==v2; or v1&gt;v2.
However it's impossible to compare values for FieldsLockingPolicy for two reasons:
1. there is no "linear order": v1&lt;v2 and v&gt;v2 is not defined: either v1==v2 or v1!=v2;
2. locking value is not a single field which is not part of mapped object value
but rather a set of object's mapped fields. That means any object's mapped attribute change
is potentially a change of the locking value.
For ChangedFieldsLockingPolicy every mapped attribute's change is a change of locking value.
The pattern used by versioning: "if the original locking value is unchanged
then the object hasn't been changed outside of the application", which allows
to distinguish between the change made inside and outside the application,
doesn't work for fields locking.
It degenerates into useless pattern: "if the original locking value is unchanged
then the object hasn't been changed".
Use compareWriteLockValues method only if this method returns true.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>supportsWriteLockValuesComparison</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="compareWriteLockValues-java.lang.Object-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>compareWriteLockValues</h4>
<pre>public&nbsp;int&nbsp;compareWriteLockValues(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value1,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value2)</pre>
<div class="block">INTERNAL:
This method shouldn't be called if supportsWriteLockValuesComparison() returns false.
This method compares two writeLockValues.
The writeLockValues should be non-null and of the correct type.
Returns:
-1 if value1 is less (older) than value2;
0 if value1 equals value2;
1 if value1 is greater (newer) than value2.
Throws:
NullPointerException if the passed value is null;
ClassCastException if the passed value is of a wrong type.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>compareWriteLockValues</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="getAllNonPrimaryKeyFields--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllNonPrimaryKeyFields</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.eclipse.persistence.internal.helper.DatabaseField&gt;&nbsp;getAllNonPrimaryKeyFields()</pre>
<div class="block">INTERNAL:
Returns the fields that should be compared in the where clause.
In this case, it is all the fields, except for the primary key
and class indicator field.</div>
</li>
</ul>
<a name="getAllNonPrimaryKeyFields-org.eclipse.persistence.internal.helper.DatabaseTable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllNonPrimaryKeyFields</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.eclipse.persistence.internal.helper.DatabaseField&gt;&nbsp;getAllNonPrimaryKeyFields(org.eclipse.persistence.internal.helper.DatabaseTable&nbsp;table)</pre>
<div class="block">INTERNAL:
filter the fields based on the passed in table. Only return fields of this table.</div>
</li>
</ul>
<a name="getBaseValue--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBaseValue</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getBaseValue()</pre>
<div class="block">INTERNAL:
This is the base value that is older than all other values, it is used in the place of
null in some situations.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>getBaseValue</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="getFieldsToCompare-org.eclipse.persistence.internal.helper.DatabaseTable-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.internal.sessions.AbstractRecord-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFieldsToCompare</h4>
<pre>protected abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.eclipse.persistence.internal.helper.DatabaseField&gt;&nbsp;getFieldsToCompare(org.eclipse.persistence.internal.helper.DatabaseTable&nbsp;table,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;transRow,
org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;modifyRow)</pre>
<div class="block">INTERNAL:
Returns the fields that should be compared in the where clause.
This method must be implemented by the subclass</div>
</li>
</ul>
<a name="getWriteLockField--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriteLockField</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.helper.DatabaseField&nbsp;getWriteLockField()</pre>
<div class="block">INTERNAL:
Return the write lock field.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>getWriteLockField</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="getWriteLockUpdateExpression-org.eclipse.persistence.expressions.ExpressionBuilder-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriteLockUpdateExpression</h4>
<pre>public&nbsp;<a href="../../../../org/eclipse/persistence/expressions/Expression.html" title="class in org.eclipse.persistence.expressions">Expression</a>&nbsp;getWriteLockUpdateExpression(<a href="../../../../org/eclipse/persistence/expressions/ExpressionBuilder.html" title="class in org.eclipse.persistence.expressions">ExpressionBuilder</a>&nbsp;builder,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>getWriteLockUpdateExpression</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="getLockOnChangeMode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLockOnChangeMode</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy.LockOnChange&nbsp;getLockOnChangeMode()</pre>
<div class="block">ADVANCED:
returns the LockOnChange mode for this policy. This mode specifies if a
Optimistic Write lock should be enforced on this entity when a set of mappings are changed.
Unfortunately this locking policy can not enforce an optimistic write lock unless a FK or DTF field
has changed so this type returns LockOnChange.NONE</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>getLockOnChangeMode</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="getValueToPutInCache-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getValueToPutInCache</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getValueToPutInCache(org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;row,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:
Return the value that should be stored in the identity map. If the value
is stored in the object, then return a null.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>getValueToPutInCache</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="getVersionDifference-java.lang.Object-java.lang.Object-java.lang.Object-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVersionDifference</h4>
<pre>public&nbsp;int&nbsp;getVersionDifference(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;currentValue,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;domainObject,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;primaryKeys,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:
Return the number of version difference between the two states of the object.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>getVersionDifference</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="getWriteLockValue-java.lang.Object-java.lang.Object-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriteLockValue</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getWriteLockValue(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;domainObject,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;primaryKey,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:
This method will return the optimistic lock value for the object</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>getWriteLockValue</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="initialize-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre>public&nbsp;void&nbsp;initialize(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:
It is responsible for initializing the policy;</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>initialize</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="initializeProperties--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initializeProperties</h4>
<pre>public&nbsp;void&nbsp;initializeProperties()</pre>
<div class="block">INTERNAL:
It is responsible for initializing the policy;</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>initializeProperties</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="isStoredInCache--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isStoredInCache</h4>
<pre>public&nbsp;boolean&nbsp;isStoredInCache()</pre>
<div class="block">PUBLIC:
Return true if the lock value is stored in the cache.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>isStoredInCache</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="isCascaded--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCascaded</h4>
<pre>public&nbsp;boolean&nbsp;isCascaded()</pre>
<div class="block">PUBLIC:
Return true if the policy uses cascade locking. Currently, not supported
on this policy at this time.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>isCascaded</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="isNewerVersion-java.lang.Object-java.lang.Object-java.lang.Object-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNewerVersion</h4>
<pre>public&nbsp;boolean&nbsp;isNewerVersion(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;currentValue,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;domainObject,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;primaryKey,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:
Compares the value and the value from the object
(or cache). Will return true if the object is newer
than the row.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>isNewerVersion</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="isNewerVersion-org.eclipse.persistence.internal.sessions.AbstractRecord-java.lang.Object-java.lang.Object-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNewerVersion</h4>
<pre>public&nbsp;boolean&nbsp;isNewerVersion(org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;Record,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;domainObject,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;primaryKey,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:
Compares the value from the row and from the object
(or cache). Will return true if the object is newer
than the row.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>isNewerVersion</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="isPrimaryKey-org.eclipse.persistence.internal.helper.DatabaseField-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPrimaryKey</h4>
<pre>protected&nbsp;boolean&nbsp;isPrimaryKey(org.eclipse.persistence.internal.helper.DatabaseField&nbsp;dbField)</pre>
<div class="block">INTERNAL:
Returns whether or not this field is a primary key.
This method will also return true for secondary table primarykeys</div>
</li>
</ul>
<a name="mergeIntoParentCache-org.eclipse.persistence.internal.sessions.UnitOfWorkImpl-java.lang.Object-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mergeIntoParentCache</h4>
<pre>public&nbsp;void&nbsp;mergeIntoParentCache(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;uow,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;primaryKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object)</pre>
<div class="block">INTERNAL:
Only applicable when the value is stored in the cache.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>mergeIntoParentCache</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="mergeIntoParentCache-org.eclipse.persistence.internal.identitymaps.CacheKey-org.eclipse.persistence.internal.identitymaps.CacheKey-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mergeIntoParentCache</h4>
<pre>public&nbsp;void&nbsp;mergeIntoParentCache(org.eclipse.persistence.internal.identitymaps.CacheKey&nbsp;unitOfWorkCacheKey,
org.eclipse.persistence.internal.identitymaps.CacheKey&nbsp;parentSessionCacheKey)</pre>
<div class="block">INTERNAL:
This method should merge changes from the parent into the child.
#see this method in VersionLockingPolicy</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>mergeIntoParentCache</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="setAllNonPrimaryKeyFields-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAllNonPrimaryKeyFields</h4>
<pre>protected&nbsp;void&nbsp;setAllNonPrimaryKeyFields(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&nbsp;allNonPrimaryKeyFields)</pre>
<div class="block">INTERNAL: Set method for all the primary keys</div>
</li>
</ul>
<a name="setDescriptor-org.eclipse.persistence.descriptors.ClassDescriptor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDescriptor</h4>
<pre>public&nbsp;void&nbsp;setDescriptor(<a href="../../../../org/eclipse/persistence/descriptors/ClassDescriptor.html" title="class in org.eclipse.persistence.descriptors">ClassDescriptor</a>&nbsp;descriptor)</pre>
<div class="block">INTERNAL: Set method for the descriptor</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>setDescriptor</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="setLockOnChangeMode-org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy.LockOnChange-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLockOnChangeMode</h4>
<pre>public&nbsp;void&nbsp;setLockOnChangeMode(org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy.LockOnChange&nbsp;lockOnChangeMode)</pre>
<div class="block">ADVANCED:
Sets the LockOnChange mode for this policy. This mode specifies if a
Optimistic Write lock should be enforced on this entity when set of mappings are changed.
Unfortunately this locking policy can not always force an optimistic lock unless the core fields have changed</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>setLockOnChangeMode</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="setupWriteFieldsForInsert-org.eclipse.persistence.queries.ObjectLevelModifyQuery-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setupWriteFieldsForInsert</h4>
<pre>public&nbsp;void&nbsp;setupWriteFieldsForInsert(<a href="../../../../org/eclipse/persistence/queries/ObjectLevelModifyQuery.html" title="class in org.eclipse.persistence.queries">ObjectLevelModifyQuery</a>&nbsp;query)</pre>
<div class="block">INTERNAL:
Put the initial writelock value into the modifyRow.
There is nothing to do because all the lock values are in the mappings.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>setupWriteFieldsForInsert</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="updateRowAndObjectForUpdate-org.eclipse.persistence.queries.ObjectLevelModifyQuery-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateRowAndObjectForUpdate</h4>
<pre>public&nbsp;void&nbsp;updateRowAndObjectForUpdate(<a href="../../../../org/eclipse/persistence/queries/ObjectLevelModifyQuery.html" title="class in org.eclipse.persistence.queries">ObjectLevelModifyQuery</a>&nbsp;query,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;domainObject)</pre>
<div class="block">INTERNAL:
Nothing to do because all updates are handled by the application</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>updateRowAndObjectForUpdate</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="shouldUpdateVersionOnOwnedMappingChange--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldUpdateVersionOnOwnedMappingChange</h4>
<pre>public&nbsp;boolean&nbsp;shouldUpdateVersionOnOwnedMappingChange()</pre>
<div class="block">INTERNAL:
Returns true if the policy has been set to set an optimistic read lock when a owning mapping changes.
Unfortunately this locking policy can not always force an optimistic lock unless the core fields have changed</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>shouldUpdateVersionOnOwnedMappingChange</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="shouldUpdateVersionOnMappingChange--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldUpdateVersionOnMappingChange</h4>
<pre>public&nbsp;boolean&nbsp;shouldUpdateVersionOnMappingChange()</pre>
<div class="block">INTERNAL:
Returns true if the policy has been set to set an optimistic read lock when any mapping changes.
Unfortunately this locking policy can not always force an optimistic lock unless the core fields have changed</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>shouldUpdateVersionOnMappingChange</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="validateDelete-int-java.lang.Object-org.eclipse.persistence.queries.DeleteObjectQuery-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateDelete</h4>
<pre>public&nbsp;void&nbsp;validateDelete(int&nbsp;rowCount,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object,
<a href="../../../../org/eclipse/persistence/queries/DeleteObjectQuery.html" title="class in org.eclipse.persistence.queries">DeleteObjectQuery</a>&nbsp;query)</pre>
<div class="block">INTERNAL:
Check the row count for lock failure.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>validateDelete</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="validateUpdate-int-java.lang.Object-org.eclipse.persistence.queries.WriteObjectQuery-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateUpdate</h4>
<pre>public&nbsp;void&nbsp;validateUpdate(int&nbsp;rowCount,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object,
<a href="../../../../org/eclipse/persistence/queries/WriteObjectQuery.html" title="class in org.eclipse.persistence.queries">WriteObjectQuery</a>&nbsp;query)</pre>
<div class="block">INTERNAL:
Check the row count for lock failure.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>validateUpdate</code>&nbsp;in interface&nbsp;<code>org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy</code></dd>
</dl>
</li>
</ul>
<a name="verifyUsage-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>verifyUsage</h4>
<pre>protected&nbsp;void&nbsp;verifyUsage(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:
throw an exception if not inside a unit of work at this point</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">EclipseLink 3.0.0, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/eclipse/persistence/descriptors/FetchGroupManager.html" title="class in org.eclipse.persistence.descriptors"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/eclipse/persistence/descriptors/InheritancePolicy.html" title="class in org.eclipse.persistence.descriptors"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/persistence/descriptors/FieldsLockingPolicy.html" target="_top">Frames</a></li>
<li><a href="FieldsLockingPolicy.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2020 <a href="http://www.eclipse.org/eclipselink">Eclipse.org - EclipseLink Project</a>. All rights reserved.</small></p>
</body>
</html>