Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 758529e

Browse files
committed
Added adoc documentation for @sequence in Spring Data R2DBC
Signed-off-by: mipo256 <mikhailpolivakha@gmail.com>
1 parent d8185ef commit 758529e

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
[[r2dbc.sequences]]
2+
= Sequences Support
3+
4+
Since Spring Data R2DBC 3.5, properties that are annotated with `@Id` and thus represent
5+
an Id property can additionally be annotated with `@Sequence`. This signals, that the Id property
6+
value would be fetched from the configured sequence during an `INSERT` statement. By default,
7+
without `@Sequence`, the identity column is assumed. Consider the following entity.
8+
9+
.Entity with Id generation from sequence
10+
[source,java]
11+
----
12+
@Table
13+
class MyEntity {
14+
15+
@Id
16+
@Sequence(
17+
sequence = "my_seq",
18+
schema = "public"
19+
)
20+
private Long id;
21+
22+
private String name;
23+
}
24+
----
25+
26+
When persisting this entity, before the SQL `INSERT` Spring Data will issue an additional `SELECT`
27+
statement to fetch the next value from the sequence. For instance, for PostgreSQL the query, issued by
28+
Spring Data, would look like this:
29+
30+
.Select for next sequence value in PostgreSQL
31+
[source,sql]
32+
----
33+
SELECT nextval('public.my_seq');
34+
----
35+
36+
The fetched Id would later be included in the `VALUES` list during an insert:
37+
38+
.Insert statement enriched with Id value
39+
[source,sql]
40+
----
41+
INSERT INTO "my_entity"("id", "name") VALUES(?, ?);
42+
----
43+
44+
For now, the sequence support is provided for almost every dialect supported by Spring Data R2DBC.
45+
The only exception is MySQL, since MySQL does not have sequences as such.
46+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /