Skip to content

Commit 9dc228b

Browse files
committed
Add DbForeignKey
1 parent 36d7ee9 commit 9dc228b

2 files changed

Lines changed: 244 additions & 2 deletions

File tree

Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,241 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<title>Mapping | Ebean</title>
5+
<meta charset="utf-8">
6+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
7+
<link rel="shortcut icon" href="/images/favicon.ico">
8+
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto|Source+Sans+Pro|Ubuntu&display=swap">
9+
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
10+
<link rel="stylesheet" href="/css/reset3.css">
11+
<link rel="stylesheet" href="/css/site3.css">
12+
<link rel="stylesheet" href="/css/pygments3.css">
13+
</head>
14+
<body>
15+
<div id="main">
16+
17+
<div id="banner">
18+
<header>
19+
<nav id="top">
20+
<h1 id="breadcrumb">
21+
<a class="nav-logo" href="/"><img src="/images/logo-200.png" height="35"></a>&nbsp;&nbsp;<a href="/docs">Documentation</a><span class="sep">&nbsp;/&nbsp;</span><a href="/docs/mapping/">Mapping</a><span class="sep">&nbsp;/&nbsp;</span><a href="/docs/mapping/extension">Extension</a><span class="sep">&nbsp;/&nbsp;</span><span class="last">@DbForeignKey</span>
22+
</h1>
23+
<ul>
24+
25+
<li><a onclick="toggleTheme();" title="switch dark light theme"><i class="fas fa-adjust"></i></a></li>
26+
</ul>
27+
</nav>
28+
</header>
29+
</div>
30+
<div class="grid grid-docs">
31+
<aside>
32+
<nav class="side">
33+
<ul>
34+
<li class="nav0 ">
35+
<a href="/docs/getting-started">Getting started</a>
36+
</li>
37+
<li class="nav0 ">
38+
<a href="/docs/intro">Introduction</a>
39+
</li>
40+
<li class="nav0 active">
41+
<a class="active" href="/docs">Documentation</a>
42+
<ul>
43+
<li class="nav1 ">
44+
<a href="/docs/best-practice">Best practice</a>
45+
</li>
46+
<li class="nav1 ">
47+
<a href="/docs/query">Query</a>
48+
</li>
49+
<li class="nav1 ">
50+
<a href="/docs/persist">Persist</a>
51+
</li>
52+
<li class="nav1 ">
53+
<a href="/docs/transactions">Transactions</a>
54+
</li>
55+
<li class="nav1 active">
56+
<a class="active" href="/docs/mapping">Mapping</a>
57+
<ul class="nav">
58+
<li class="nav1 ">
59+
<a href="/docs/mapping/type">Types</a>
60+
</li>
61+
62+
<li class="nav1 ">
63+
<a href="/docs/mapping/jpa">JPA</a>
64+
</li>
65+
66+
<li class="nav1 active">
67+
<a class="active" href="/docs/mapping/extensions">Extensions</a>
68+
<ul class="nav">
69+
<li >
70+
<a href="/docs/mapping/extensions/identity">@Identity</a>
71+
</li>
72+
<li >
73+
<a href="/docs/mapping/extensions/dbindex">@Index</a>
74+
</li>
75+
<li >
76+
<a href="/docs/mapping/extensions/dbenumvalue">@DbEnumValue</a>
77+
</li>
78+
<li >
79+
<a href="/docs/mapping/extensions/dbjson">@DbJson</a>
80+
</li>
81+
<li >
82+
<a href="/docs/mapping/extensions/dbarray">@DbArray</a>
83+
</li>
84+
<li >
85+
<a href="/docs/mapping/extensions/dbmap">@DbMap</a>
86+
</li>
87+
<li >
88+
<a href="/docs/mapping/extensions/dbcomment">@DbComment</a>
89+
</li>
90+
<li >
91+
<a href="/docs/mapping/extensions/dbpartition">@DbPartition</a>
92+
</li>
93+
<li >
94+
<a href="/docs/mapping/extensions/when-created">@WhenCreated</a>
95+
</li>
96+
<li >
97+
<a href="/docs/mapping/extensions/when-modified">@WhenModified</a>
98+
</li>
99+
<li >
100+
<a href="/docs/mapping/extensions/who-created">@WhoCreated</a>
101+
</li>
102+
<li >
103+
<a href="/docs/mapping/extensions/who-modified">@WhoModified</a>
104+
</li>
105+
<li >
106+
<a href="/docs/mapping/extensions/soft-delete">@SoftDelete</a>
107+
</li>
108+
<li >
109+
<a href="/docs/mapping/extensions/encrypted">@Encrypted</a>
110+
</li>
111+
<li >
112+
<a href="/docs/mapping/extensions/formula">@Formula</a>
113+
</li>
114+
<li >
115+
<a href="/docs/mapping/extensions/view">@View</a>
116+
</li>
117+
<li >
118+
<a href="/docs/mapping/extensions/history">@History</a>
119+
</li>
120+
<li >
121+
<a href="/docs/mapping/extensions/change-log">@ChangeLog</a>
122+
</li>
123+
<li >
124+
<a href="/docs/mapping/extensions/read-audit">@ReadAudit</a>
125+
</li>
126+
</ul>
127+
</li>
128+
</ul>
129+
</li>
130+
<li class="nav1 ">
131+
<a href="/docs/ddl-generation">DDL & Migrations</a>
132+
</li>
133+
<li class="nav1 ">
134+
<a href="/docs/logging">Logging</a>
135+
</li>
136+
<li class="nav1 ">
137+
<a href="/docs/testing">Testing</a>
138+
</li>
139+
<li class="nav1 ">
140+
<a href="/docs/database">Database platforms</a>
141+
</li>
142+
<li class="nav1 ">
143+
<a href="/docs/multi-database">Multiple databases</a>
144+
</li>
145+
<li class="nav1 ">
146+
<a href="/docs/kotlin">Kotlin</a>
147+
</li>
148+
<li><a href="/docs/tuning">Tuning</a></li>
149+
<li class="nav1 ">
150+
<a href="/docs/features">Features</a>
151+
</li>
152+
</ul>
153+
</li>
154+
<li class="nav0 ">
155+
<a href="/support">Getting help</a>
156+
</li>
157+
<li class="nav0 ">
158+
<a target="_blank" href="/apidoc/13">API Javadoc</a>
159+
</li>
160+
<li class="nav0 ">
161+
<a href="/videos">Videos</a>
162+
</li>
163+
<li class="nav0 ">
164+
<a href="/docs/upgrading">Upgrading</a>
165+
</li>
166+
<li class="nav0 ">
167+
<a href="/releases">Releases</a>
168+
</li>
169+
170+
</ul>
171+
</nav>
172+
</aside>
173+
<article>
174+
<form action="https://www.google.com/search" method="get" class="inline-form">
175+
<input type="hidden" name="as_sitesearch" value="ebean.io">
176+
<div id="page-search">
177+
<div class="input-group">
178+
<input class="frm" name="q" id="searchinput" type="text" placeholder="Search... (press 's' to focus)" data-placeholder-focus="Search... (use '↑', '↓' and '⏎' to select results)" data-placeholder-blur="Search... (press 's' to focus)" autocomplete="off">
179+
<div class="input-group-btn">
180+
<button class="frm" type="submit"><i class="fas fa-search"></i></button>
181+
</div>
182+
</div>
183+
<div id="page-search-results" style="display: none;">
184+
<ul id="search-results-container" class="search-results"><li class=" active"><a href="/docs" title="Docs"><span style="color:#777;">Docs</span> Documentation </a></li><li class=""><small style="color:#999;">And 101 more...</small></li></ul>
185+
</div>
186+
</div>
187+
</form>
188+
189+
190+
191+
<h2>@DbForeignKey</h2>
192+
<p>
193+
We can use <code>@DbForeignKey</code> to control the foreign key DDL that
194+
is generated by ebeean.
195+
</p>
196+
197+
<h3>noConstraint = true</h3>
198+
<p>
199+
In the following example <code>noConstraint = true</code> is used
200+
such that no foreign key constraint is generated.
201+
</p>
202+
<div class="syntax java"><div class="highlight"><pre><span></span><span class="nd">@ManyToOne</span>
203+
<span class="nd">@DbForeignKey</span><span class="o">(</span><span class="nx">noConstraint</span> <span class="o">=</span> <span class="kc">true</span><span class="o">)</span>
204+
<span class="n">Customer</span> <span class="n">customer</span><span class="o">;</span>
205+
</pre></div>
206+
</div>
207+
208+
209+
<h3>onDelete/onUpdate ConstraintMode</h3>
210+
<p>
211+
We can specify <code>ConstraintMode</code> for <code>onDelete</code> or <code>onUpdate</code>.
212+
</p>
213+
<p>
214+
The <code>ConstraintMode</code> can be one of <code>RESTRICT, SET_NULL, SET_DEFAULT, or CASCADE</code>.
215+
</p>
216+
<div class="syntax java"><div class="highlight"><pre><span></span><span class="nd">@ManyToOne</span>
217+
<span class="nd">@DbForeignKey</span><span class="o">(</span><span class="nx">onDelete</span><span class="o">=</span><span class="nx">ConstraintMode</span><span class="o">.</span><span class="na">CASCADE</span><span class="o">)</span>
218+
<span class="n">Address</span> <span class="n">address</span><span class="o">;</span>
219+
</pre></div>
220+
</div>
221+
222+
<p>&nbsp;</p>
223+
224+
225+
226+
</article>
227+
</div>
228+
229+
</div>
230+
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
231+
<script src="/js/site3.js"></script>
232+
<script src="/js/search3.js"></script>
233+
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-75181644-1"></script>
234+
<script>
235+
window.dataLayer = window.dataLayer || [];
236+
function gtag(){dataLayer.push(arguments);}
237+
gtag('js', new Date());
238+
gtag('config', 'UA-75181644-1');
239+
</script>
240+
</body>
241+
</html>

docs/mapping/extensions/index.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,9 +195,10 @@ <h2>Ebean mapping extensions</h2>
195195
<div>
196196
<h5><a href="/docs/mapping/extensions/identity">@Identity</a></h5>
197197
<h5><a href="/docs/mapping/extensions/dbindex">@Index</a></h5>
198-
<h5><a href="/docs/mapping/extensions/dbjson">@DbJson</a></h5>
199198
<h5><a href="/docs/mapping/extensions/dbarray">@DbArray</a></h5>
200-
<h5><a href="/docs/mapping/extensions/dbarray">@DbHstore</a></h5>
199+
<h5><a href="/docs/mapping/extensions/dbforeignkey">@DbForeignKey</a></h5>
200+
<h5><a href="/docs/mapping/extensions/dbjson">@DbJson</a></h5>
201+
<h5><a href="/docs/mapping/extensions/dbmap">@DbMap</a></h5>
201202
<h5><a href="/docs/mapping/extensions/dbcomment">@DbComment</a></h5>
202203
<h5><a href="/docs/mapping/extensions/dbpartition">@DbPartition</a></h5>
203204
</div>

0 commit comments

Comments
 (0)