Skip to content

Commit 01a4bbd

Browse files
kazuki43zooschauder
authored andcommitted
DATAJDBC-206 - Update README with changes from recent issues.
Covers changes from DATAJDBC-182, DATAJDBC-184, DATAJDBC-178. Original pull request: #61.
1 parent 53eea02 commit 01a4bbd

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

README.adoc

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,19 @@ When determining the `RowMapper` to use for a method the following steps are fol
152152
If applicable, wrapper types like collections or `Optional` are unwrapped.
153153
Thus, a return type of `Optional<Person>` will use the type `Person` in the steps above.
154154

155+
==== Modifying query
156+
157+
You can mark as a modifying query using the `@Modifying` on query method.
158+
159+
[source,java]
160+
----
161+
@Modifying
162+
@Query("UPDATE DUMMYENTITY SET name = :name WHERE id = :id")
163+
boolean updateName(@Param("id") Long id, @Param("name") String name);
164+
----
165+
166+
The return types that can be specified are `void`, `int`(updated record count) and `boolean`(whether record was updated).
167+
155168
=== Id generation
156169

157170
Spring Data JDBC uses the id to identify entities, but also to determine if an entity is new or already existing in the database.
@@ -171,6 +184,15 @@ If you are not using autoincrement-columns, you can use a `BeforeSave`-listener
171184
If you use the standard implementations of `CrudRepository` as provided by Spring Data JDBC, it will expect a certain table structure.
172185
You can tweak that by providing a https://github.com/spring-projects/spring-data-jdbc/blob/master/src/main/java/org/springframework/data/jdbc/mapping/model/NamingStrategy.java[`NamingStrategy`] in your application context.
173186

187+
.Optional classes of NamingStrategy
188+
|===
189+
| Class | Description
190+
191+
| https://github.com/spring-projects/spring-data-jdbc/blob/master/src/main/java/org/springframework/data/jdbc/mapping/model/DelimiterNamingStrategy.java[`DelimiterNamingStrategy`]
192+
| The delimiter character implementation of NamingStrategy. The default delimiter is `_`(underscore), resulting in snake case. This class does not used by default.
193+
|===
194+
195+
174196
=== Events
175197

176198
Spring Data JDBC triggers events which will get published to any matching `ApplicationListener` in the application context.
@@ -221,7 +243,7 @@ For each operation in `CrudRepository` Spring Data JDBC will execute multiple st
221243
If there is a https://github.com/mybatis/mybatis-3/blob/master/src/main/java/org/apache/ibatis/session/SqlSessionFactory.java[`SqlSessionFactory`] in the application context, it will be checked if it offers a statement for each step.
222244
If one is found, that statement will be used (including its configured mapping to an entity).
223245

224-
The name of the statement is constructed by concatenating the fully qualified name of the entity type with `Mapper.` and a string determining the kind of statement.
246+
By default, the name of the statement is constructed by concatenating the fully qualified name of the entity type with `Mapper.` and a string determining the kind of statement.
225247
E.g. if an instance of `org.example.User` is to be inserted, Spring Data JDBC will look for a statement named `org.example.UserMapper.insert`.
226248

227249
Upon execution of the statement an instance of [`MyBatisContext`] will get passed as an argument which makes various arguments available to the statement.
@@ -293,6 +315,10 @@ Note that the type used for prefixing the statement name is the name of the aggr
293315
`getDomainType` the type of aggregate roots to count.
294316
|===
295317

318+
==== NamespaceStrategy
319+
320+
You can customize the namespace part of a statement name using https://github.com/spring-projects/spring-data-jdbc/blob/master/src/main/java/org/springframework/data/jdbc/mybatis/NamespaceStrategy.java[`NamespaceStrategy`].
321+
296322
== Features planned for the not too distant future
297323

298324
=== Advanced query annotation support

0 commit comments

Comments
 (0)