Files
developer.sailpoint.com/static/rule-java-docs/sailpoint/api/PersistenceManager.html
2023-05-03 23:14:09 -04:00

1334 lines
69 KiB
HTML

<!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_322) on Wed Sep 21 11:32:21 EDT 2022 -->
<title>PersistenceManager</title>
<meta name="date" content="2022-09-21">
<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="PersistenceManager";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":18,"i16":18,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default 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-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../sailpoint/api/PersistenceManager.LockParameters.html" title="class in sailpoint.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
</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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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">sailpoint.api</div>
<h2 title="Interface PersistenceManager" class="title">Interface PersistenceManager</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../sailpoint/object/Resolver.html" title="interface in sailpoint.object">Resolver</a></dd>
</dl>
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><a href="../../sailpoint/api/SailPointContext.html" title="interface in sailpoint.api">SailPointContext</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">PersistenceManager</span>
extends <a href="../../sailpoint/object/Resolver.html" title="interface in sailpoint.object">Resolver</a></pre>
<div class="block">Interface implemented by classes that provide persistence services.</div>
</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>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Interface and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.LockParameters.html" title="class in sailpoint.api">PersistenceManager.LockParameters</a></span></code>
<div class="block">Encapsulation of lock parameters.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.LockPhase.html" title="enum in sailpoint.api">PersistenceManager.LockPhase</a></span></code>&nbsp;</td>
</tr>
</table>
</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>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#LOCK_NAME">LOCK_NAME</a></span></code>
<div class="block">Option for lockObject that specifies the name of the user
that will hold the lock.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#LOCK_TYPE">LOCK_TYPE</a></span></code>
<div class="block">Option for lockObject that specifies the type of lock to
be acquired.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#LOCK_TYPE_PERSISTENT">LOCK_TYPE_PERSISTENT</a></span></code>
<div class="block">A value for the LOCK_TYPE option that selects a persistent lock.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#LOCK_TYPE_TRANSACTION">LOCK_TYPE_TRANSACTION</a></span></code>
<div class="block">A value for the LOCK_TYPE option that selects a transaction lock.</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="t5" class="tableTab"><span><a href="javascript:show(16);">Default 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="../../sailpoint/api/PersistenceManager.html#attach-sailpoint.object.SailPointObject-">attach</a></span>(<a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&nbsp;object)</code>
<div class="block">Attach the given SailPointObject possibly loaded by a different
SailPointContext to this SailPointContext.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#clearHighLevelCache--">clearHighLevelCache</a></span>()</code>
<div class="block">Clears a "high level" cache.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#clone--">clone</a></span>()</code>
<div class="block">Optional clone method.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#close--">close</a></span>()</code>
<div class="block">Close this PersistenceManager and release any resources in use.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#commitTransaction--">commitTransaction</a></span>()</code>
<div class="block">Commit the current transaction that was started with
<a href="../../sailpoint/api/PersistenceManager.html#startTransaction--"><code>startTransaction()</code></a>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#commitTransaction-boolean-">commitTransaction</a></span>(boolean&nbsp;startNewTransaction)</code>
<div class="block">Commit the current transaction that was started with
<a href="../../sailpoint/api/PersistenceManager.html#startTransaction--"><code>startTransaction()</code></a>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#countObjects-java.lang.Class-sailpoint.object.QueryOptions-">countObjects</a></span>(java.lang.Class&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options)</code>
<div class="block">Counts the number of objects that match a criteria.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#decache--">decache</a></span>()</code>
<div class="block">Remove all objects the cache.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#decache-sailpoint.object.SailPointObject-">decache</a></span>(<a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&nbsp;obj)</code>
<div class="block">Remove the object from the cache.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#enableStatistics-boolean-">enableStatistics</a></span>(boolean&nbsp;b)</code>
<div class="block">Enable or disable collection of statistics.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#getObjectById-java.lang.Class-java.lang.String-">getObjectById</a></span>(java.lang.Class&lt;T&gt;&nbsp;cls,
java.lang.String&nbsp;id)</code>
<div class="block">Retrieve an object by id.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#getObjectByName-java.lang.Class-java.lang.String-">getObjectByName</a></span>(java.lang.Class&lt;T&gt;&nbsp;cls,
java.lang.String&nbsp;name)</code>
<div class="block">Retrieve an object by name.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>java.util.List&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#getObjects-java.lang.Class-">getObjects</a></span>(java.lang.Class&lt;T&gt;&nbsp;cls)</code>
<div class="block">Return all objects of a given class.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>java.util.List&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#getObjects-java.lang.Class-sailpoint.object.QueryOptions-">getObjects</a></span>(java.lang.Class&lt;T&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;ops)</code>
<div class="block">Return all objects of a given class, constrained by Filters
in the QueryOptions.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../sailpoint/object/PersistenceOptions.html" title="interface in sailpoint.object">PersistenceOptions</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#getPersistenceOptions--">getPersistenceOptions</a></span>()</code>
<div class="block">Get current options that control how objects are managed in the Hibernate session.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>default &lt;T&gt;&nbsp;java.util.Iterator&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#getPropertyIterator-java.lang.Class-sailpoint.object.QueryOptions-java.lang.String-">getPropertyIterator</a></span>(java.lang.Class&lt;? extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options,
java.lang.String&nbsp;property)</code>
<div class="block">Perform a projection search for a single object property and return an iterator.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>default &lt;T&gt;&nbsp;java.util.List&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#getPropertyList-java.lang.Class-sailpoint.object.QueryOptions-java.lang.String-">getPropertyList</a></span>(java.lang.Class&lt;? extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options,
java.lang.String&nbsp;property)</code>
<div class="block">Perform a projection search for a single object property and return a list.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#getUniqueObject-java.lang.Class-sailpoint.object.Filter-">getUniqueObject</a></span>(java.lang.Class&lt;T&gt;&nbsp;cls,
<a href="../../sailpoint/object/Filter.html" title="interface in sailpoint.object">Filter</a>&nbsp;f)</code>
<div class="block">Retrieve an object matching a Filter.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#getUniqueObject-T-">getUniqueObject</a></span>(T&nbsp;example)</code>
<div class="block">Retrieve an object whose properties match those specified in
an example object.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#importObject-sailpoint.object.SailPointObject-">importObject</a></span>(<a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&nbsp;obj)</code>
<div class="block">Import an object into the persistent store.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#lockObject-java.lang.Class-sailpoint.api.PersistenceManager.LockParameters-">lockObject</a></span>(java.lang.Class&lt;T&gt;&nbsp;clazz,
<a href="../../sailpoint/api/PersistenceManager.LockParameters.html" title="class in sailpoint.api">PersistenceManager.LockParameters</a>&nbsp;params)</code>
<div class="block">This method should be the entry point for all public locking calls.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#lockObjectById-java.lang.Class-java.lang.String-java.util.Map-">lockObjectById</a></span>(java.lang.Class&lt;T&gt;&nbsp;cls,
java.lang.String&nbsp;id,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</code>
<div class="block">Retrieve an object with a long-duration lock.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#lockObjectByName-java.lang.Class-java.lang.String-java.util.Map-">lockObjectByName</a></span>(java.lang.Class&lt;T&gt;&nbsp;cls,
java.lang.String&nbsp;name,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</code>
<div class="block">Retrieve an object with a long-duration lock.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#printStatistics--">printStatistics</a></span>()</code>
<div class="block">Print the collected statistics.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#reconnect--">reconnect</a></span>()</code>
<div class="block">Reconnect the PersistenceManager to the persistent store (for example, by
reconnecting to the database).</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#releasePersistentLocks--">releasePersistentLocks</a></span>()</code>
<div class="block">Ensure any persistent locks acquired are released before releasing this context.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#removeObject-sailpoint.object.SailPointObject-">removeObject</a></span>(<a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&nbsp;obj)</code>
<div class="block">Remove an object from the persistent store.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#removeObjects-java.lang.Class-sailpoint.object.QueryOptions-">removeObjects</a></span>(java.lang.Class&lt;T&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;ops)</code>
<div class="block">Bulk remove object based on the Filter defined in the
QueryOptions.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#requiresJoin-java.lang.Class-sailpoint.object.QueryOptions-java.util.List-">requiresJoin</a></span>(java.lang.Class&lt;? extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options,
java.util.List&lt;java.lang.String&gt;&nbsp;properties)</code>
<div class="block">Returns whether the resulting query for the specified QueryOptions and properties
requires sql joins, making duplicate results possible.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#rollbackTransaction--">rollbackTransaction</a></span>()</code>
<div class="block">Rollback the current transaction that was started with
<a href="../../sailpoint/api/PersistenceManager.html#startTransaction--"><code>startTransaction()</code></a>.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#saveObject-sailpoint.object.SailPointObject-">saveObject</a></span>(<a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&nbsp;obj)</code>
<div class="block">Save an object in the persistent store.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>java.util.Iterator&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#search-java.lang.Class-sailpoint.object.QueryOptions-">search</a></span>(java.lang.Class&lt;T&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options)</code>
<div class="block">Return a set of objects matching the query options.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>java.util.Iterator&lt;java.lang.Object[]&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#search-java.lang.Class-sailpoint.object.QueryOptions-java.util.List-">search</a></span>(java.lang.Class&lt;T&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options,
java.util.List&lt;java.lang.String&gt;&nbsp;properties)</code>
<div class="block">Perform a projection search for selected object properties and return
an iterator.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>java.util.Iterator&lt;java.lang.Object[]&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#search-java.lang.Class-sailpoint.object.QueryOptions-java.lang.String-">search</a></span>(java.lang.Class&lt;T&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options,
java.lang.String&nbsp;properties)</code>
<div class="block">Perform a projection search for selected object properties and return
an iterator.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>java.util.Iterator</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#search-java.lang.String-java.util.Map-sailpoint.object.QueryOptions-">search</a></span>(java.lang.String&nbsp;query,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;args,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;ops)</code>
<div class="block">Perform a search specified in an HQL or SQL string.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#setPersistenceOptions-sailpoint.object.PersistenceOptions-">setPersistenceOptions</a></span>(<a href="../../sailpoint/object/PersistenceOptions.html" title="interface in sailpoint.object">PersistenceOptions</a>&nbsp;ops)</code>
<div class="block">Set options to control how objects are managed in the Hibernate session.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#startTransaction--">startTransaction</a></span>()</code>
<div class="block">Begin a transaction.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;<br>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#unlockObject-T-">unlockObject</a></span>(T&nbsp;object)</code>
<div class="block">Save and unlock an object.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../sailpoint/api/PersistenceManager.html#update-java.lang.String-java.util.Map-">update</a></span>(java.lang.String&nbsp;query,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;args)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.sailpoint.object.Resolver">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;sailpoint.object.<a href="../../sailpoint/object/Resolver.html" title="interface in sailpoint.object">Resolver</a></h3>
<code><a href="../../sailpoint/object/Resolver.html#getObject-java.lang.Class-java.lang.String-">getObject</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="LOCK_NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOCK_NAME</h4>
<pre>static final&nbsp;java.lang.String LOCK_NAME</pre>
<div class="block">Option for lockObject that specifies the name of the user
that will hold the lock.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#sailpoint.api.PersistenceManager.LOCK_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOCK_TYPE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOCK_TYPE</h4>
<pre>static final&nbsp;java.lang.String LOCK_TYPE</pre>
<div class="block">Option for lockObject that specifies the type of lock to
be acquired. The default is a persistent lock.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#sailpoint.api.PersistenceManager.LOCK_TYPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOCK_TYPE_TRANSACTION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOCK_TYPE_TRANSACTION</h4>
<pre>static final&nbsp;java.lang.String LOCK_TYPE_TRANSACTION</pre>
<div class="block">A value for the LOCK_TYPE option that selects a transaction lock.
A transaction lock is held only for the duration of the current
transaction, it corresponds to a Hibernate fetch with
LockMode.UPGRADE, which in turn corresponds to a SQL
select with the "for update" option.
If another transaction has locked this object, the calling
thread will suspend until the other transaction completes
(or the request times out).
This type of lock is appropriate for internal background tasks
that need exclusive access to an object for a short duration
and do not need the overhead of a persistent lock.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#sailpoint.api.PersistenceManager.LOCK_TYPE_TRANSACTION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOCK_TYPE_PERSISTENT">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LOCK_TYPE_PERSISTENT</h4>
<pre>static final&nbsp;java.lang.String LOCK_TYPE_PERSISTENT</pre>
<div class="block">A value for the LOCK_TYPE option that selects a persistent lock.
A persistent lock is an application-level locking convention
that uses a special column in the object table to indicate
the lock status. A persistent lock can span transactions.
Persistent locks are appropriate if you need to lock
an object for a long period of time, or keep an object locked
across a transaction boundary.
This type of lock is most appropriate for editing sessions in
the UI. Because it must modify the locked object it has more
overhead than a transaction lock which makes it less suitable
for background tasks that scan many objects.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#sailpoint.api.PersistenceManager.LOCK_TYPE_PERSISTENT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="clone--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clone</h4>
<pre>java.lang.Object&nbsp;clone()
throws java.lang.CloneNotSupportedException</pre>
<div class="block">Optional clone method. Not necessarily implemented.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.CloneNotSupportedException</code></dd>
</dl>
</li>
</ul>
<a name="startTransaction--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startTransaction</h4>
<pre>void&nbsp;startTransaction()
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Begin a transaction. This is implicitly called before any other
operation if the transaction has not yet been started.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="commitTransaction--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commitTransaction</h4>
<pre>void&nbsp;commitTransaction()
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Commit the current transaction that was started with
<a href="../../sailpoint/api/PersistenceManager.html#startTransaction--"><code>startTransaction()</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="commitTransaction-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commitTransaction</h4>
<pre>void&nbsp;commitTransaction(boolean&nbsp;startNewTransaction)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Commit the current transaction that was started with
<a href="../../sailpoint/api/PersistenceManager.html#startTransaction--"><code>startTransaction()</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="rollbackTransaction--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rollbackTransaction</h4>
<pre>void&nbsp;rollbackTransaction()
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Rollback the current transaction that was started with
<a href="../../sailpoint/api/PersistenceManager.html#startTransaction--"><code>startTransaction()</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="releasePersistentLocks--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releasePersistentLocks</h4>
<pre>void&nbsp;releasePersistentLocks()
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Ensure any persistent locks acquired are released before releasing this context.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>void&nbsp;close()
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Close this PersistenceManager and release any resources in use. If there
is an active transaction, this is rolled back. This is a
package-protected method because it should only be called by
<code>SailPointFactory.releaseContext()</code>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="getObjectById-java.lang.Class-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getObjectById</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;T&nbsp;getObjectById(java.lang.Class&lt;T&gt;&nbsp;cls,
java.lang.String&nbsp;id)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Retrieve an object by id.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../sailpoint/object/Resolver.html#getObjectById-java.lang.Class-java.lang.String-">getObjectById</a></code>&nbsp;in interface&nbsp;<code><a href="../../sailpoint/object/Resolver.html" title="interface in sailpoint.object">Resolver</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="getObjectByName-java.lang.Class-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getObjectByName</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;T&nbsp;getObjectByName(java.lang.Class&lt;T&gt;&nbsp;cls,
java.lang.String&nbsp;name)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Retrieve an object by name.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../sailpoint/object/Resolver.html#getObjectByName-java.lang.Class-java.lang.String-">getObjectByName</a></code>&nbsp;in interface&nbsp;<code><a href="../../sailpoint/object/Resolver.html" title="interface in sailpoint.object">Resolver</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="lockObjectById-java.lang.Class-java.lang.String-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lockObjectById</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;T&nbsp;lockObjectById(java.lang.Class&lt;T&gt;&nbsp;cls,
java.lang.String&nbsp;id,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Retrieve an object with a long-duration lock.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="lockObjectByName-java.lang.Class-java.lang.String-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lockObjectByName</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;T&nbsp;lockObjectByName(java.lang.Class&lt;T&gt;&nbsp;cls,
java.lang.String&nbsp;name,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Retrieve an object with a long-duration lock.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="unlockObject-sailpoint.object.SailPointObject-">
<!-- -->
</a><a name="unlockObject-T-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unlockObject</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;void&nbsp;unlockObject(T&nbsp;object)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Save and unlock an object.
This will commit the transaction.
Note that this method does not care who you are and if
you hold the lock, it simply releases the current lock.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="getUniqueObject-sailpoint.object.SailPointObject-">
<!-- -->
</a><a name="getUniqueObject-T-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUniqueObject</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;T&nbsp;getUniqueObject(T&nbsp;example)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Retrieve an object whose properties match those specified in
an example object. If more than one object match the criteria,
null is returned.
Note that this practically useless because if the class contains
boolean or integer fields you have to set them, there is no
"nullness" of primitive types that keeps them out of the criteria.
For example searching for ManagedAttribute by value will fail
to find anything with the "uncorrelated" property true.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="getUniqueObject-java.lang.Class-sailpoint.object.Filter-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUniqueObject</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;T&nbsp;getUniqueObject(java.lang.Class&lt;T&gt;&nbsp;cls,
<a href="../../sailpoint/object/Filter.html" title="interface in sailpoint.object">Filter</a>&nbsp;f)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Retrieve an object matching a Filter. If more than one object matches
the filter null is returned.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="saveObject-sailpoint.object.SailPointObject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>saveObject</h4>
<pre>void&nbsp;saveObject(<a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&nbsp;obj)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Save an object in the persistent store.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="importObject-sailpoint.object.SailPointObject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>importObject</h4>
<pre>void&nbsp;importObject(<a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&nbsp;obj)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Import an object into the persistent store.
This is intended to be used only from the Importer.
It differs from saveObject in that it will allow the overwriting
of an existing object with the same name.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="removeObject-sailpoint.object.SailPointObject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeObject</h4>
<pre>void&nbsp;removeObject(<a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&nbsp;obj)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Remove an object from the persistent store.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="removeObjects-java.lang.Class-sailpoint.object.QueryOptions-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeObjects</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;void&nbsp;removeObjects(java.lang.Class&lt;T&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;ops)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Bulk remove object based on the Filter defined in the
QueryOptions.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="getObjects-java.lang.Class-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getObjects</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;java.util.List&lt;T&gt;&nbsp;getObjects(java.lang.Class&lt;T&gt;&nbsp;cls)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Return all objects of a given class. Useful for things like
Reports and JobSchedules, but be careful with objects that can
have lots of instances.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="getObjects-java.lang.Class-sailpoint.object.QueryOptions-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getObjects</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;java.util.List&lt;T&gt;&nbsp;getObjects(java.lang.Class&lt;T&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;ops)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Return all objects of a given class, constrained by Filters
in the QueryOptions. Note that although you can specify them,
Projections in the QueryOptions are not supported for this
method. If you need to use Projections, use the search method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../sailpoint/object/Resolver.html#getObjects-java.lang.Class-sailpoint.object.QueryOptions-">getObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../sailpoint/object/Resolver.html" title="interface in sailpoint.object">Resolver</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="countObjects-java.lang.Class-sailpoint.object.QueryOptions-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>countObjects</h4>
<pre>int&nbsp;countObjects(java.lang.Class&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Counts the number of objects that match a criteria.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="search-java.lang.Class-sailpoint.object.QueryOptions-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>search</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;java.util.Iterator&lt;T&gt;&nbsp;search(java.lang.Class&lt;T&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Return a set of objects matching the query options.
NOTE: Although this returns an iterator, implementations are
actually fetching all the objects into memory so use this with
care.
OTHER NOTE: This non-projection variation of search() does not
honor distinct=true on the QueryOptions. However, getObjects() does.
Consider using that instead.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../sailpoint/api/PersistenceManager.html#getObjects-java.lang.Class-sailpoint.object.QueryOptions-"><code>getObjects(Class, QueryOptions)</code></a></dd>
</dl>
</li>
</ul>
<a name="search-java.lang.Class-sailpoint.object.QueryOptions-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>search</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;java.util.Iterator&lt;java.lang.Object[]&gt;&nbsp;search(java.lang.Class&lt;T&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options,
java.lang.String&nbsp;properties)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Perform a projection search for selected object properties and return
an iterator. Depending on the specific implementation this may or may
not return an iterator that encapsulates a database cursor that will
fetch gradually. User beware, and break large queries into chunks to
avoid potential OOM errors.
10/2020**********************************************************
NOTE THAT CURRENT MYSQL IMPLEMENTATIONS WILL GENERALLY PULL THE FULL RESULT SET INTO MEMORY. ***
This is similar to <a href="../../sailpoint/api/PersistenceManager.html#search-java.lang.Class-sailpoint.object.QueryOptions-java.util.List-"><code>search(Class, QueryOptions, List)</code></a> but accepts the properties as
a comma-separated string rather than a list.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cls</code> - The Class to search over.</dd>
<dd><code>options</code> - The QueryOptions to use.</dd>
<dd><code>properties</code> - A comma-separated list of properties to return.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="search-java.lang.Class-sailpoint.object.QueryOptions-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>search</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;java.util.Iterator&lt;java.lang.Object[]&gt;&nbsp;search(java.lang.Class&lt;T&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options,
java.util.List&lt;java.lang.String&gt;&nbsp;properties)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Perform a projection search for selected object properties and return
an iterator. Depending on the specific implementation this may or may
not return an iterator that encapsulates a database cursor that will
fetch gradually. User beware, and break large queries into chunks to
avoid potential OOM errors.
10/2020**********************************************************
NOTE THAT CURRENT MYSQL IMPLEMENTATIONS WILL GENERALLY PULL THE FULL RESULT SET INTO MEMORY. ***</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="requiresJoin-java.lang.Class-sailpoint.object.QueryOptions-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requiresJoin</h4>
<pre>boolean&nbsp;requiresJoin(java.lang.Class&lt;? extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options,
java.util.List&lt;java.lang.String&gt;&nbsp;properties)</pre>
<div class="block">Returns whether the resulting query for the specified QueryOptions and properties
requires sql joins, making duplicate results possible.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cls</code> - The class that we're searching on.</dd>
<dd><code>options</code> - The QueryOptions with filters and ordering.</dd>
<dd><code>properties</code> - The List of properties to return.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether the resulting query requires sql joins, making duplicate results possible.</dd>
</dl>
</li>
</ul>
<a name="getPropertyIterator-java.lang.Class-sailpoint.object.QueryOptions-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPropertyIterator</h4>
<pre>default&nbsp;&lt;T&gt;&nbsp;java.util.Iterator&lt;T&gt;&nbsp;getPropertyIterator(java.lang.Class&lt;? extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options,
java.lang.String&nbsp;property)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Perform a projection search for a single object property and return an iterator.
This is preferable over <a href="../../sailpoint/api/PersistenceManager.html#getPropertyList-java.lang.Class-sailpoint.object.QueryOptions-java.lang.String-"><code>getPropertyList(java.lang.Class&lt;? extends sailpoint.object.SailPointObject&gt;, sailpoint.object.QueryOptions, java.lang.String)</code></a> for large results to avoid pulling too much data into memory,
but should not be used if the results need to be iterable across transaction boundaries, as the iterator session
may be closed on commits.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="getPropertyList-java.lang.Class-sailpoint.object.QueryOptions-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPropertyList</h4>
<pre>default&nbsp;&lt;T&gt;&nbsp;java.util.List&lt;T&gt;&nbsp;getPropertyList(java.lang.Class&lt;? extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;cls,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;options,
java.lang.String&nbsp;property)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Perform a projection search for a single object property and return a list.
This should be used only when the results size is small or if the results need to be iterable across
transaction boundaries. Otherwise <a href="../../sailpoint/api/PersistenceManager.html#getPropertyIterator-java.lang.Class-sailpoint.object.QueryOptions-java.lang.String-"><code>getPropertyIterator(java.lang.Class&lt;? extends sailpoint.object.SailPointObject&gt;, sailpoint.object.QueryOptions, java.lang.String)</code></a> should be used.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="search-java.lang.String-java.util.Map-sailpoint.object.QueryOptions-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>search</h4>
<pre>java.util.Iterator&nbsp;search(java.lang.String&nbsp;query,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;args,
<a href="../../sailpoint/object/QueryOptions.html" title="interface in sailpoint.object">QueryOptions</a>&nbsp;ops)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Perform a search specified in an HQL or SQL string.
By default the query string is parsed as HQL. If you
want to use SQL, prefix the string with "sql:".
What you get back from the iterator depends on the query.
For HQL queries that return objects it will be an Iterator<SailPointObject>.
For SQL queries or HQL queries that return projections it will be Iterator<Object[]>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="update-java.lang.String-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>update</h4>
<pre>int&nbsp;update(java.lang.String&nbsp;query,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;args)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>query</code> - It can be either hql or sql. If it is sql it should be prepended with "sql:"</dd>
<dd><code>args</code> - Parameters for the query</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of rows updated</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="attach-sailpoint.object.SailPointObject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>attach</h4>
<pre>void&nbsp;attach(<a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&nbsp;object)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Attach the given SailPointObject possibly loaded by a different
SailPointContext to this SailPointContext.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="decache-sailpoint.object.SailPointObject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decache</h4>
<pre>void&nbsp;decache(<a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&nbsp;obj)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Remove the object from the cache.
Necessary if you are processing large numbers of objects in the
same session.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="decache--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decache</h4>
<pre>void&nbsp;decache()
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Remove all objects the cache.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="setPersistenceOptions-sailpoint.object.PersistenceOptions-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPersistenceOptions</h4>
<pre>void&nbsp;setPersistenceOptions(<a href="../../sailpoint/object/PersistenceOptions.html" title="interface in sailpoint.object">PersistenceOptions</a>&nbsp;ops)</pre>
<div class="block">Set options to control how objects are managed in the Hibernate session.</div>
</li>
</ul>
<a name="getPersistenceOptions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPersistenceOptions</h4>
<pre><a href="../../sailpoint/object/PersistenceOptions.html" title="interface in sailpoint.object">PersistenceOptions</a>&nbsp;getPersistenceOptions()</pre>
<div class="block">Get current options that control how objects are managed in the Hibernate session.</div>
</li>
</ul>
<a name="enableStatistics-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>enableStatistics</h4>
<pre>void&nbsp;enableStatistics(boolean&nbsp;b)</pre>
<div class="block">Enable or disable collection of statistics.</div>
</li>
</ul>
<a name="printStatistics--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printStatistics</h4>
<pre>void&nbsp;printStatistics()</pre>
<div class="block">Print the collected statistics.</div>
</li>
</ul>
<a name="reconnect--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reconnect</h4>
<pre>void&nbsp;reconnect()</pre>
<div class="block">Reconnect the PersistenceManager to the persistent store (for example, by
reconnecting to the database). This should almost never be used.
Consider using <a href="../../sailpoint/api/PersistenceManager.html#decache--"><code>decache()</code></a> instead.</div>
</li>
</ul>
<a name="clearHighLevelCache--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearHighLevelCache</h4>
<pre>void&nbsp;clearHighLevelCache()
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">Clears a "high level" cache. This method has the effect of removing objects
from a cache (if one exists) that is above the session level. For Hibernate, this
method clears the second level cache.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</li>
</ul>
<a name="lockObject-java.lang.Class-sailpoint.api.PersistenceManager.LockParameters-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>lockObject</h4>
<pre>&lt;T extends <a href="../../sailpoint/object/SailPointObject.html" title="interface in sailpoint.object">SailPointObject</a>&gt;&nbsp;T&nbsp;lockObject(java.lang.Class&lt;T&gt;&nbsp;clazz,
<a href="../../sailpoint/api/PersistenceManager.LockParameters.html" title="class in sailpoint.api">PersistenceManager.LockParameters</a>&nbsp;params)
throws <a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></pre>
<div class="block">This method should be the entry point for all public locking calls.
Other locking methods are there for backward compatibility and will delegate to this.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clazz</code> - The sailpoint class type of the object</dd>
<dd><code>params</code> - contains all the information pertinent to locking.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the locked object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../sailpoint/tools/GeneralException.html" title="class in sailpoint.tools">GeneralException</a></code></dd>
</dl>
</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-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../sailpoint/api/PersistenceManager.LockParameters.html" title="class in sailpoint.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
</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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>