blob: 0bd493ebdd709d5c3ec9de52f0af06e23d4812a1 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.10) on Mon Dec 05 10:27:04 MSK 2022 -->
<title>ObjRelationship (cayenne-doc: Cayenne Documentation 4.2.RC2 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-12-05">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ObjRelationship (cayenne-doc: Cayenne Documentation 4.2.RC2 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"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":42,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ObjRelationship.html">Use</a></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"><a href="http://cayenne.apache.org" target="top">Apache Cayenne</a></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</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 id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.cayenne.map</a></div>
<h2 title="Class ObjRelationship" class="title">Class ObjRelationship</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" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="Relationship.html" title="class in org.apache.cayenne.map">org.apache.cayenne.map.Relationship</a></li>
<li>
<ul class="inheritance">
<li>org.apache.cayenne.map.ObjRelationship</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="../configuration/ConfigurationNode.html" title="interface in org.apache.cayenne.configuration">ConfigurationNode</a></code>, <code><a href="../util/CayenneMapEntry.html" title="interface in org.apache.cayenne.util">CayenneMapEntry</a></code>, <code><a href="../util/XMLSerializable.html" title="interface in org.apache.cayenne.util">XMLSerializable</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">ObjRelationship</span>
extends <a href="Relationship.html" title="class in org.apache.cayenne.map">Relationship</a>
implements <a href="../configuration/ConfigurationNode.html" title="interface in org.apache.cayenne.configuration">ConfigurationNode</a></pre>
<div class="block">Describes an association between two Java classes mapped as source and target
ObjEntity. Maps to a path of DbRelationships.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../serialized-form.html#org.apache.cayenne.map.ObjRelationship">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectionType">collectionType</a></span></code></th>
<td class="colLast">
<div class="block">Stores the type of collection mapped by a to-many relationship.</div>
</td>
</tr>
<tr 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" class="externalLink">List</a>&lt;<a href="DbRelationship.html" title="class in org.apache.cayenne.map">DbRelationship</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dbRelationships">dbRelationships</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_COLLECTION_TYPE">DEFAULT_COLLECTION_TYPE</a></span></code></th>
<td class="colLast">
<div class="block">Denotes a default type of to-many relationship collection which is a Java
List.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deleteRule">deleteRule</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mapKey">mapKey</a></span></code></th>
<td class="colLast">
<div class="block">Stores a property name of a target entity used to create a relationship
map.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#usedForLocking">usedForLocking</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.apache.cayenne.map.Relationship">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.cayenne.map.<a href="Relationship.html" title="class in org.apache.cayenne.map">Relationship</a></h3>
<code><a href="Relationship.html#name">name</a>, <a href="Relationship.html#runtime">runtime</a>, <a href="Relationship.html#sourceEntity">sourceEntity</a>, <a href="Relationship.html#targetEntityName">targetEntityName</a>, <a href="Relationship.html#toMany">toMany</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ObjRelationship</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">ObjRelationship</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#acceptVisitor(org.apache.cayenne.configuration.ConfigurationNodeVisitor)">acceptVisitor</a></span>&#8203;(<a href="../configuration/ConfigurationNodeVisitor.html" title="interface in org.apache.cayenne.configuration">ConfigurationNodeVisitor</a>&lt;T&gt;&nbsp;visitor)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addDbRelationship(org.apache.cayenne.map.DbRelationship)">addDbRelationship</a></span>&#8203;(<a href="DbRelationship.html" title="class in org.apache.cayenne.map">DbRelationship</a>&nbsp;dbRel)</code></th>
<td class="colLast">
<div class="block">Appends a DbRelationship to the existing list of DbRelationships.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearDbRelationships()">clearDbRelationships</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="ObjRelationship.html" title="class in org.apache.cayenne.map">ObjRelationship</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createReverseRelationship()">createReverseRelationship</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates a complimentary reverse relationship from target entity to the
source entity.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encodeAsXML(org.apache.cayenne.util.XMLEncoder,org.apache.cayenne.configuration.ConfigurationNodeVisitor)">encodeAsXML</a></span>&#8203;(<a href="../util/XMLEncoder.html" title="class in org.apache.cayenne.util">XMLEncoder</a>&nbsp;encoder,
<a href="../configuration/ConfigurationNodeVisitor.html" title="interface in org.apache.cayenne.configuration">ConfigurationNodeVisitor</a>&nbsp;delegate)</code></th>
<td class="colLast">
<div class="block">Prints itself as XML to the provided XMLEncoder.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="ObjRelationship.html" title="class in org.apache.cayenne.map">ObjRelationship</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClientRelationship()">getClientRelationship</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an ObjAttribute stripped of any server-side information, such as
DbAttribute mapping.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCollectionType()">getCollectionType</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the interface of collection mapped by a to-many relationship.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDbRelationshipPath()">getDbRelationshipPath</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a dot-separated path over mapped DbRelationships.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="DbRelationship.html" title="class in org.apache.cayenne.map">DbRelationship</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDbRelationships()">getDbRelationships</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an immutable list of underlying DbRelationships.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDeleteRule()">getDeleteRule</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the deleteRule.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMapKey()">getMapKey</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a property name of a target entity used to create a relationship
map.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReverseDbRelationshipPath()">getReverseDbRelationshipPath</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a reversed dbRelationship path.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="ObjRelationship.html" title="class in org.apache.cayenne.map">ObjRelationship</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReverseRelationship()">getReverseRelationship</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a "complimentary" ObjRelationship going in the opposite
direction.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReverseRelationshipName()">getReverseRelationshipName</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the name of a complimentary relationship going in the opposite
direction or null if it doesn't exist.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="ObjEntity.html" title="class in org.apache.cayenne.map">ObjEntity</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSourceEntity()">getSourceEntity</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns relationship source entity.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="ObjEntity.html" title="class in org.apache.cayenne.map">ObjEntity</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTargetEntity()">getTargetEntity</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a target ObjEntity of this relationship.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isFlattened()">isFlattened</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if the relationship is a "flattened" relationship.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isMandatory()">isMandatory</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns if relationship is mandatory</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isOptional()">isOptional</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a boolean indicating whether the presence of a non-null source
key(s) will not guarantee a presence of a target record.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReadOnly()">isReadOnly</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if the relationship is flattened, but is not of the single
case that can have automatic write support.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSourceDefiningTargetPrecenseAndType(org.apache.cayenne.map.EntityResolver)">isSourceDefiningTargetPrecenseAndType</a></span>&#8203;(<a href="EntityResolver.html" title="class in org.apache.cayenne.map">EntityResolver</a>&nbsp;entityResolver)</code></th>
<td class="colLast">
<div class="block">Returns true if the relationship is non-optional and target has no
subclasses.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSourceIndependentFromTargetChange()">isSourceIndependentFromTargetChange</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a boolean indicating whether modifying a target of such
relationship in any way will not change the underlying table row of the
source.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isToDependentEntity()">isToDependentEntity</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if underlying DbRelationships point to dependent entity.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isToMany()">isToMany</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a boolean value that determines relationship multiplicity.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isToPK()">isToPK</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if the underlying DbRelationships point to a at least one of
the columns of the target entity.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isUsedForLocking()">isUsedForLocking</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether this attribute should be used for locking.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#recalculateReadOnlyValue()">recalculateReadOnlyValue</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">since 4.2</div>
</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#recalculateToManyValue()">recalculateToManyValue</a></span>()</code></th>
<td class="colLast">
<div class="block">Recalculates whether a relationship is toMany or toOne, based on the
underlying db relationships.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeDbRelationship(org.apache.cayenne.map.DbRelationship)">removeDbRelationship</a></span>&#8203;(<a href="DbRelationship.html" title="class in org.apache.cayenne.map">DbRelationship</a>&nbsp;dbRel)</code></th>
<td class="colLast">
<div class="block">Removes the relationship <code>dbRel</code> from the list of
relationships.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCollectionType(java.lang.String)">setCollectionType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;collectionType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDbRelationshipPath(java.lang.String)">setDbRelationshipPath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relationshipPath)</code></th>
<td class="colLast">
<div class="block">Sets mapped DbRelationships as a dot-separated path.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDeferredDbRelationshipPath(java.lang.String)">setDeferredDbRelationshipPath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relationshipPath)</code></th>
<td class="colLast">
<div class="block">Sets relationship path, but does not trigger its conversion to
List<DbRelationship> For internal purposes, primarily datamap loading</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDeleteRule(int)">setDeleteRule</a></span>&#8203;(int&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Sets the delete rule of the relationship.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMapKey(java.lang.String)">setMapKey</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;mapKey)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setUsedForLocking(boolean)">setUsedForLocking</a></span>&#8203;(boolean&nbsp;usedForLocking)</code></th>
<td class="colLast">
<div class="block">Sets whether this attribute should be used for locking.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">
<div class="block">Overrides Object.toString() to return informative description.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.cayenne.map.Relationship">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.cayenne.map.<a href="Relationship.html" title="class in org.apache.cayenne.map">Relationship</a></h3>
<code><a href="Relationship.html#getName()">getName</a>, <a href="Relationship.html#getParent()">getParent</a>, <a href="Relationship.html#getTargetEntityName()">getTargetEntityName</a>, <a href="Relationship.html#isRuntime()">isRuntime</a>, <a href="Relationship.html#setName(java.lang.String)">setName</a>, <a href="Relationship.html#setParent(java.lang.Object)">setParent</a>, <a href="Relationship.html#setRuntime(boolean)">setRuntime</a>, <a href="Relationship.html#setSourceEntity(org.apache.cayenne.map.Entity)">setSourceEntity</a>, <a href="Relationship.html#setTargetEntityName(java.lang.String)">setTargetEntityName</a>, <a href="Relationship.html#setTargetEntityName(org.apache.cayenne.map.Entity)">setTargetEntityName</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="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" class="externalLink">Object</a></h3>
<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" class="externalLink">clone</a>, <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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">notifyAll</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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="DEFAULT_COLLECTION_TYPE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_COLLECTION_TYPE</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> DEFAULT_COLLECTION_TYPE</pre>
<div class="block">Denotes a default type of to-many relationship collection which is a Java
List.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.map.ObjRelationship.DEFAULT_COLLECTION_TYPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="deleteRule">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteRule</h4>
<pre>protected&nbsp;int deleteRule</pre>
</li>
</ul>
<a id="usedForLocking">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>usedForLocking</h4>
<pre>protected&nbsp;boolean usedForLocking</pre>
</li>
</ul>
<a id="dbRelationships">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dbRelationships</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" class="externalLink">List</a>&lt;<a href="DbRelationship.html" title="class in org.apache.cayenne.map">DbRelationship</a>&gt; dbRelationships</pre>
</li>
</ul>
<a id="collectionType">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectionType</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> collectionType</pre>
<div class="block">Stores the type of collection mapped by a to-many relationship. Null for
to-one relationships.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="mapKey">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>mapKey</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> mapKey</pre>
<div class="block">Stores a property name of a target entity used to create a relationship
map. Only has effect if collectionType property is set to
"java.util.Map".</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ObjRelationship</h4>
<pre>public&nbsp;ObjRelationship()</pre>
</li>
</ul>
<a id="&lt;init&gt;(java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ObjRelationship</h4>
<pre>public&nbsp;ObjRelationship&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getSourceEntity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSourceEntity</h4>
<pre class="methodSignature">public&nbsp;<a href="ObjEntity.html" title="class in org.apache.cayenne.map">ObjEntity</a>&nbsp;getSourceEntity()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="Relationship.html#getSourceEntity()">Relationship</a></code></span></div>
<div class="block">Returns relationship source entity.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="Relationship.html#getSourceEntity()">getSourceEntity</a></code>&nbsp;in class&nbsp;<code><a href="Relationship.html" title="class in org.apache.cayenne.map">Relationship</a></code></dd>
</dl>
</li>
</ul>
<a id="acceptVisitor(org.apache.cayenne.configuration.ConfigurationNodeVisitor)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acceptVisitor</h4>
<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;acceptVisitor&#8203;(<a href="../configuration/ConfigurationNodeVisitor.html" title="interface in org.apache.cayenne.configuration">ConfigurationNodeVisitor</a>&lt;T&gt;&nbsp;visitor)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../configuration/ConfigurationNode.html#acceptVisitor(org.apache.cayenne.configuration.ConfigurationNodeVisitor)">acceptVisitor</a></code>&nbsp;in interface&nbsp;<code><a href="../configuration/ConfigurationNode.html" title="interface in org.apache.cayenne.configuration">ConfigurationNode</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.1</dd>
</dl>
</li>
</ul>
<a id="encodeAsXML(org.apache.cayenne.util.XMLEncoder,org.apache.cayenne.configuration.ConfigurationNodeVisitor)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encodeAsXML</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;encodeAsXML&#8203;(<a href="../util/XMLEncoder.html" title="class in org.apache.cayenne.util">XMLEncoder</a>&nbsp;encoder,
<a href="../configuration/ConfigurationNodeVisitor.html" title="interface in org.apache.cayenne.configuration">ConfigurationNodeVisitor</a>&nbsp;delegate)</pre>
<div class="block">Prints itself as XML to the provided XMLEncoder.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/XMLSerializable.html#encodeAsXML(org.apache.cayenne.util.XMLEncoder,org.apache.cayenne.configuration.ConfigurationNodeVisitor)">encodeAsXML</a></code>&nbsp;in interface&nbsp;<code><a href="../util/XMLSerializable.html" title="interface in org.apache.cayenne.util">XMLSerializable</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1</dd>
</dl>
</li>
</ul>
<a id="getTargetEntity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTargetEntity</h4>
<pre class="methodSignature">public&nbsp;<a href="ObjEntity.html" title="class in org.apache.cayenne.map">ObjEntity</a>&nbsp;getTargetEntity()</pre>
<div class="block">Returns a target ObjEntity of this relationship. Entity is looked up in
the parent DataMap using "targetEntityName".</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Relationship.html#getTargetEntity()">getTargetEntity</a></code>&nbsp;in class&nbsp;<code><a href="Relationship.html" title="class in org.apache.cayenne.map">Relationship</a></code></dd>
</dl>
</li>
</ul>
<a id="getReverseRelationshipName()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReverseRelationshipName</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getReverseRelationshipName()</pre>
<div class="block">Returns the name of a complimentary relationship going in the opposite
direction or null if it doesn't exist.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</li>
</ul>
<a id="getReverseRelationship()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReverseRelationship</h4>
<pre class="methodSignature">public&nbsp;<a href="ObjRelationship.html" title="class in org.apache.cayenne.map">ObjRelationship</a>&nbsp;getReverseRelationship()</pre>
<div class="block">Returns a "complimentary" ObjRelationship going in the opposite
direction. Returns null if no such relationship is found.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Relationship.html#getReverseRelationship()">getReverseRelationship</a></code>&nbsp;in class&nbsp;<code><a href="Relationship.html" title="class in org.apache.cayenne.map">Relationship</a></code></dd>
</dl>
</li>
</ul>
<a id="createReverseRelationship()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createReverseRelationship</h4>
<pre class="methodSignature">public&nbsp;<a href="ObjRelationship.html" title="class in org.apache.cayenne.map">ObjRelationship</a>&nbsp;createReverseRelationship()</pre>
<div class="block">Creates a complimentary reverse relationship from target entity to the
source entity. A new relationship is created regardless of whether one
already exists. Returned relationship is not attached to the source
entity and has no name. Throws a <a href="../CayenneRuntimeException.html" title="class in org.apache.cayenne"><code>CayenneRuntimeException</code></a> if
reverse DbRelationship is not mapped.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="getDbRelationships()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDbRelationships</h4>
<pre class="methodSignature">public&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" class="externalLink">List</a>&lt;<a href="DbRelationship.html" title="class in org.apache.cayenne.map">DbRelationship</a>&gt;&nbsp;getDbRelationships()</pre>
<div class="block">Returns an immutable list of underlying DbRelationships.</div>
</li>
</ul>
<a id="addDbRelationship(org.apache.cayenne.map.DbRelationship)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addDbRelationship</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addDbRelationship&#8203;(<a href="DbRelationship.html" title="class in org.apache.cayenne.map">DbRelationship</a>&nbsp;dbRel)</pre>
<div class="block">Appends a DbRelationship to the existing list of DbRelationships.</div>
</li>
</ul>
<a id="removeDbRelationship(org.apache.cayenne.map.DbRelationship)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeDbRelationship</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;removeDbRelationship&#8203;(<a href="DbRelationship.html" title="class in org.apache.cayenne.map">DbRelationship</a>&nbsp;dbRel)</pre>
<div class="block">Removes the relationship <code>dbRel</code> from the list of
relationships.</div>
</li>
</ul>
<a id="clearDbRelationships()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearDbRelationships</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;clearDbRelationships()</pre>
</li>
</ul>
<a id="isOptional()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOptional</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isOptional()</pre>
<div class="block">Returns a boolean indicating whether the presence of a non-null source
key(s) will not guarantee a presence of a target record. PK..FK
relationships are all optional, but there are other more subtle cases,
such as PK..PK, etc.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="isSourceDefiningTargetPrecenseAndType(org.apache.cayenne.map.EntityResolver)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSourceDefiningTargetPrecenseAndType</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isSourceDefiningTargetPrecenseAndType&#8203;(<a href="EntityResolver.html" title="class in org.apache.cayenne.map">EntityResolver</a>&nbsp;entityResolver)</pre>
<div class="block">Returns true if the relationship is non-optional and target has no
subclasses.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="isSourceIndependentFromTargetChange()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSourceIndependentFromTargetChange</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isSourceIndependentFromTargetChange()</pre>
<div class="block">Returns a boolean indicating whether modifying a target of such
relationship in any way will not change the underlying table row of the
source.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1</dd>
</dl>
</li>
</ul>
<a id="isToDependentEntity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isToDependentEntity</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isToDependentEntity()</pre>
<div class="block">Returns true if underlying DbRelationships point to dependent entity.</div>
</li>
</ul>
<a id="isToPK()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isToPK</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isToPK()</pre>
<div class="block">Returns true if the underlying DbRelationships point to a at least one of
the columns of the target entity.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1</dd>
</dl>
</li>
</ul>
<a id="isFlattened()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFlattened</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isFlattened()</pre>
<div class="block">Returns true if the relationship is a "flattened" relationship. A
relationship is considered "flattened" if it maps to more than one
DbRelationship. Such chain of DbRelationships is also called
"relationship path". All flattened relationships are at least readable,
but only those formed across a many-many join table (with no custom
attributes other than foreign keys) can be automatically written.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>flag indicating if the relationship is flattened or not.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#isReadOnly()"><code>isReadOnly()</code></a></dd>
</dl>
</li>
</ul>
<a id="isReadOnly()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isReadOnly</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isReadOnly()</pre>
<div class="block">Returns true if the relationship is flattened, but is not of the single
case that can have automatic write support. Otherwise, it returns false.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>flag indicating if the relationship is read only or not</dd>
</dl>
</li>
</ul>
<a id="isToMany()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isToMany</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isToMany()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="Relationship.html#isToMany()">Relationship</a></code></span></div>
<div class="block">Returns a boolean value that determines relationship multiplicity. This defines
semantics of the connection between two nodes described by the source and target
entities. E.g. to-many relationship between two Persistent object classes means
that a source object would have a collection of target objects. This is a read-only
property.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="Relationship.html#isToMany()">isToMany</a></code>&nbsp;in class&nbsp;<code><a href="Relationship.html" title="class in org.apache.cayenne.map">Relationship</a></code></dd>
</dl>
</li>
</ul>
<a id="getDeleteRule()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeleteRule</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getDeleteRule()</pre>
<div class="block">Returns the deleteRule. The delete rule is a constant from the DeleteRule
class, and specifies what should happen to the destination object when
the source object is deleted.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>int a constant from DeleteRule</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#setDeleteRule(int)"><code>setDeleteRule(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="setDeleteRule(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDeleteRule</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setDeleteRule&#8203;(int&nbsp;value)</pre>
<div class="block">Sets the delete rule of the relationship.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - New delete rule. Must be one of the constants defined in
DeleteRule class.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the value is not a valid delete rule.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="DeleteRule.html" title="class in org.apache.cayenne.map"><code>DeleteRule</code></a></dd>
</dl>
</li>
</ul>
<a id="isUsedForLocking()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isUsedForLocking</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isUsedForLocking()</pre>
<div class="block">Returns whether this attribute should be used for locking.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1</dd>
</dl>
</li>
</ul>
<a id="setUsedForLocking(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUsedForLocking</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setUsedForLocking&#8203;(boolean&nbsp;usedForLocking)</pre>
<div class="block">Sets whether this attribute should be used for locking.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1</dd>
</dl>
</li>
</ul>
<a id="getDbRelationshipPath()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDbRelationshipPath</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getDbRelationshipPath()</pre>
<div class="block">Returns a dot-separated path over mapped DbRelationships.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1</dd>
</dl>
</li>
</ul>
<a id="getReverseDbRelationshipPath()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReverseDbRelationshipPath</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getReverseDbRelationshipPath()
throws <a href="../exp/ExpressionException.html" title="class in org.apache.cayenne.exp">ExpressionException</a></pre>
<div class="block">Returns a reversed dbRelationship path.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../exp/ExpressionException.html" title="class in org.apache.cayenne.exp">ExpressionException</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</li>
</ul>
<a id="setDbRelationshipPath(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDbRelationshipPath</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setDbRelationshipPath&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relationshipPath)</pre>
<div class="block">Sets mapped DbRelationships as a dot-separated path.</div>
</li>
</ul>
<a id="setDeferredDbRelationshipPath(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDeferredDbRelationshipPath</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setDeferredDbRelationshipPath&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relationshipPath)</pre>
<div class="block">Sets relationship path, but does not trigger its conversion to
List<DbRelationship> For internal purposes, primarily datamap loading</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>4.1 this method is public as it is used by new XML loaders</dd>
</dl>
</li>
</ul>
<a id="recalculateToManyValue()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recalculateToManyValue</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;recalculateToManyValue()</pre>
<div class="block">Recalculates whether a relationship is toMany or toOne, based on the
underlying db relationships.</div>
</li>
</ul>
<a id="recalculateReadOnlyValue()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recalculateReadOnlyValue</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public&nbsp;void&nbsp;recalculateReadOnlyValue()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">since 4.2</div>
</div>
<div class="block">Recalculates a new readonly value based on the underlying
DbRelationships.</div>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="Relationship.html#toString()">Relationship</a></code></span></div>
<div class="block">Overrides Object.toString() to return informative description.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="Relationship.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="Relationship.html" title="class in org.apache.cayenne.map">Relationship</a></code></dd>
</dl>
</li>
</ul>
<a id="getClientRelationship()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClientRelationship</h4>
<pre class="methodSignature">public&nbsp;<a href="ObjRelationship.html" title="class in org.apache.cayenne.map">ObjRelationship</a>&nbsp;getClientRelationship()</pre>
<div class="block">Returns an ObjAttribute stripped of any server-side information, such as
DbAttribute mapping.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</li>
</ul>
<a id="getCollectionType()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCollectionType</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getCollectionType()</pre>
<div class="block">Returns the interface of collection mapped by a to-many relationship.
Returns null for to-one relationships. Default for to-many is
"java.util.List". Other possible values are "java.util.Set",
"java.util.Collection", "java.util.Map".</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="setCollectionType(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCollectionType</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setCollectionType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;collectionType)</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="getMapKey()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMapKey</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getMapKey()</pre>
<div class="block">Returns a property name of a target entity used to create a relationship
map. Only has effect if collectionType property is set to
"java.util.Map".</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The attribute name used for the map key or <code>null</code> if
the default (PK) is used as the map key.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="setMapKey(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMapKey</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMapKey&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;mapKey)</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="isMandatory()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isMandatory</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isMandatory()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="Relationship.html#isMandatory()">Relationship</a></code></span></div>
<div class="block">Returns if relationship is mandatory</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Relationship.html#isMandatory()">isMandatory</a></code>&nbsp;in class&nbsp;<code><a href="Relationship.html" title="class in org.apache.cayenne.map">Relationship</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ObjRelationship.html">Use</a></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"><a href="http://cayenne.apache.org" target="top">Apache Cayenne</a></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</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 id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2022 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
</footer>
</body>
</html>