blob: 1cd3e6f8f569e1c372677cf42a5b8f16982e7d63 [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>ForeignKey</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="ForeignKey";
}
}
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/FlushModeType.html" title="enum in jakarta.persistence"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/persistence/GeneratedValue.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/ForeignKey.html" target="_top">Frames</a></li>
<li><a href="ForeignKey.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 ForeignKey" class="title">Annotation Type ForeignKey</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@Target(value={})
@Retention(value=RUNTIME)
public @interface <span class="memberNameLabel">ForeignKey</span></pre>
<div class="block">Used to specify the handling of foreign key constraints when schema
generation is in effect. If this annotation is not specified, the
persistence provider's default foreign key strategy will be used.
<p>
The <code>ConstraintMode</code> value is used to specify whether foreign
key constraints should be generated.
<p>
The syntax used in the <code>foreignKeyDefinition</code> element
should follow the SQL syntax used by the target database for foreign
key constraints. For example, this may be similar the following:
<pre>
FOREIGN KEY ( &#060;COLUMN expression&#062; {, &#060;COLUMN expression&#062;}... )
REFERENCES &#060;TABLE identifier&#062; [
(&#060;COLUMN expression&#062; {, &#060;COLUMN expression&#062;}... ) ]
[ ON UPDATE &#060;referential action&#062; ]
[ ON DELETE &#060;referential action&#062; ]
</pre>
When the <code>ConstraintMode</code> value is
<code>CONSTRAINT</code>, but the <code>foreignKeyDefinition</code>
element is not specified, the provider will generate foreign key
constraints whose update and delete actions it determines most
appropriate for the join column(s) to which the foreign key
annotation is applied.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/persistence/JoinColumn.html" title="annotation in jakarta.persistence"><code>JoinColumn</code></a>,
<a href="../../jakarta/persistence/JoinColumns.html" title="annotation in jakarta.persistence"><code>JoinColumns</code></a>,
<a href="../../jakarta/persistence/MapKeyJoinColumn.html" title="annotation in jakarta.persistence"><code>MapKeyJoinColumn</code></a>,
<a href="../../jakarta/persistence/MapKeyJoinColumns.html" title="annotation in jakarta.persistence"><code>MapKeyJoinColumns</code></a>,
<a href="../../jakarta/persistence/PrimaryKeyJoinColumn.html" title="annotation in jakarta.persistence"><code>PrimaryKeyJoinColumn</code></a>,
<a href="../../jakarta/persistence/JoinTable.html" title="annotation in jakarta.persistence"><code>JoinTable</code></a>,
<a href="../../jakarta/persistence/CollectionTable.html" title="annotation in jakarta.persistence"><code>CollectionTable</code></a>,
<a href="../../jakarta/persistence/SecondaryTable.html" title="annotation in jakarta.persistence"><code>SecondaryTable</code></a>,
<a href="../../jakarta/persistence/AssociationOverride.html" title="annotation in jakarta.persistence"><code>AssociationOverride</code></a></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>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/ForeignKey.html#foreignKeyDefinition--">foreignKeyDefinition</a></span></code>
<div class="block">(Optional) The foreign key constraint definition.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/ForeignKey.html#name--">name</a></span></code>
<div class="block">(Optional) The name of the foreign key constraint.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/ConstraintMode.html" title="enum in jakarta.persistence">ConstraintMode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/ForeignKey.html#value--">value</a></span></code>
<div class="block">(Optional) Used to specify whether a foreign key constraint should be
generated when schema generation is in effect.</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="name--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>name</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;name</pre>
<div class="block">(Optional) The name of the foreign key constraint. If this
is not specified, it defaults to a provider-generated name.</div>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="value--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>value</h4>
<pre>public abstract&nbsp;<a href="../../jakarta/persistence/ConstraintMode.html" title="enum in jakarta.persistence">ConstraintMode</a>&nbsp;value</pre>
<div class="block">(Optional) Used to specify whether a foreign key constraint should be
generated when schema generation is in effect.
<p>
A value of <code>CONSTRAINT</code> will cause the persistence
provider to generate a foreign key constraint. If the
<code>foreignKeyDefinition</code> element is not specified, the
provider will generate a constraint whose update
and delete actions it determines most appropriate for the
join column(s) to which the foreign key annotation is applied.
<p>
A value of <code>NO_CONSTRAINT</code> will result in no
constraint being generated.
<p>
A value of <code>PROVIDER_DEFAULT</code> will result in the
provider's default behavior (which may or may not result
in the generation of a constraint for the given join column(s).</div>
<dl>
<dt>Default:</dt>
<dd>jakarta.persistence.ConstraintMode.CONSTRAINT</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="foreignKeyDefinition--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>foreignKeyDefinition</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;foreignKeyDefinition</pre>
<div class="block">(Optional) The foreign key constraint definition.</div>
<dl>
<dt>Default:</dt>
<dd>""</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/FlushModeType.html" title="enum in jakarta.persistence"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/persistence/GeneratedValue.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/ForeignKey.html" target="_top">Frames</a></li>
<li><a href="ForeignKey.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>