blob: 1f09e85c9033e4c861c1263363717fea9d3b7cdd [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>ManyToOne</title>
<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="ManyToOne";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../jakarta/persistence/ManyToMany.html" title="annotation in jakarta.persistence"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/persistence/MapKey.html" title="annotation in jakarta.persistence"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/persistence/ManyToOne.html" target="_top">Frames</a></li>
<li><a href="ManyToOne.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.element.detail">Element</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">jakarta.persistence</div>
<h2 title="Annotation Type ManyToOne" class="title">Annotation Type ManyToOne</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@Target(value={METHOD,FIELD})
@Retention(value=RUNTIME)
public @interface <span class="memberNameLabel">ManyToOne</span></pre>
<div class="block">Specifies a single-valued association to another entity class that
has many-to-one multiplicity. It is not normally necessary to
specify the target entity explicitly since it can usually be
inferred from the type of the object being referenced. If the
relationship is bidirectional, the non-owning
<code>OneToMany</code> entity side must used the
<code>mappedBy</code> element to specify the relationship field or
property of the entity that is the owner of the relationship.
<p> The <code>ManyToOne</code> annotation may be used within an
embeddable class to specify a relationship from the embeddable
class to an entity class. If the relationship is bidirectional, the
non-owning <code>OneToMany</code> entity side must use the <code>mappedBy</code>
element of the <code>OneToMany</code> annotation to specify the
relationship field or property of the embeddable field or property
on the owning side of the relationship. The dot (".") notation
syntax must be used in the <code>mappedBy</code> element to indicate the
relationship attribute within the embedded attribute. The value of
each identifier used with the dot notation is the name of the
respective embedded field or property.
<pre>
Example 1:
&#064;ManyToOne(optional=false)
&#064;JoinColumn(name="CUST_ID", nullable=false, updatable=false)
public Customer getCustomer() { return customer; }
Example 2:
&#064;Entity
public class Employee {
&#064;Id int id;
&#064;Embedded JobInfo jobInfo;
...
}
&#064;Embeddable
public class JobInfo {
String jobDescription;
&#064;ManyToOne ProgramManager pm; // Bidirectional
}
&#064;Entity
public class ProgramManager {
&#064;Id int id;
&#064;OneToMany(mappedBy="jobInfo.pm")
Collection&#060;Employee&#062; manages;
}
</pre></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.optional.element.summary">
<!-- -->
</a>
<h3>Optional Element Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Optional Element Summary table, listing optional elements, and an explanation">
<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Optional Element and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/CascadeType.html" title="enum in jakarta.persistence">CascadeType</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/ManyToOne.html#cascade--">cascade</a></span></code>
<div class="block">(Optional) The operations that must be cascaded to
the target of the association.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/FetchType.html" title="enum in jakarta.persistence">FetchType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/ManyToOne.html#fetch--">fetch</a></span></code>
<div class="block">(Optional) Whether the association should be lazily
loaded or must be eagerly fetched.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/ManyToOne.html#optional--">optional</a></span></code>
<div class="block">(Optional) Whether the association is optional.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Class</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/ManyToOne.html#targetEntity--">targetEntity</a></span></code>
<div class="block">(Optional) The entity class that is the target of
the association.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.element.detail">
<!-- -->
</a>
<h3>Element Detail</h3>
<a name="targetEntity--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>targetEntity</h4>
<pre>public abstract&nbsp;java.lang.Class&nbsp;targetEntity</pre>
<div class="block">(Optional) The entity class that is the target of
the association.
<p> Defaults to the type of the field or property
that stores the association.</div>
<dl>
<dt>Default:</dt>
<dd>void.class</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="cascade--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cascade</h4>
<pre>public abstract&nbsp;<a href="../../jakarta/persistence/CascadeType.html" title="enum in jakarta.persistence">CascadeType</a>[]&nbsp;cascade</pre>
<div class="block">(Optional) The operations that must be cascaded to
the target of the association.
<p> By default no operations are cascaded.</div>
<dl>
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fetch--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fetch</h4>
<pre>public abstract&nbsp;<a href="../../jakarta/persistence/FetchType.html" title="enum in jakarta.persistence">FetchType</a>&nbsp;fetch</pre>
<div class="block">(Optional) Whether the association should be lazily
loaded or must be eagerly fetched. The EAGER
strategy is a requirement on the persistence provider runtime that
the associated entity must be eagerly fetched. The LAZY
strategy is a hint to the persistence provider runtime.</div>
<dl>
<dt>Default:</dt>
<dd>jakarta.persistence.FetchType.EAGER</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="optional--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>optional</h4>
<pre>public abstract&nbsp;boolean&nbsp;optional</pre>
<div class="block">(Optional) Whether the association is optional. If set
to false then a non-null relationship must always exist.</div>
<dl>
<dt>Default:</dt>
<dd>true</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-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../jakarta/persistence/ManyToMany.html" title="annotation in jakarta.persistence"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/persistence/MapKey.html" title="annotation in jakarta.persistence"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/persistence/ManyToOne.html" target="_top">Frames</a></li>
<li><a href="ManyToOne.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.element.detail">Element</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>