Remove references to s.j.generate-ddl in favor of s.j.hibernate.ddl-auto
This commit is contained in:
@@ -1041,3 +1041,6 @@ features.testing.testcontainers.at-development-time=features.testcontainers.at-d
|
||||
features.testing.testcontainers.at-development-time.dynamic-properties=features.testcontainers.at-development-time.dynamic-properties
|
||||
features.testing.testcontainers.at-development-time.importing-container-declarations=features.testcontainers.at-development-time.importing-container-declarations
|
||||
features.testing.testcontainers.at-development-time.devtools=features.testcontainers.at-development-time.devtools
|
||||
|
||||
# gh-40503
|
||||
howto.data-initialization.using-jpa=howto.data-initialization.using-hibernate
|
||||
|
||||
@@ -282,7 +282,6 @@ The following line shows an example of setting JPA properties for Hibernate:
|
||||
The line in the preceding example passes a value of `true` for the `hibernate.globally_quoted_identifiers` property to the Hibernate entity manager.
|
||||
|
||||
By default, the DDL execution (or validation) is deferred until the `ApplicationContext` has started.
|
||||
There is also a `spring.jpa.generate-ddl` flag, but it is not used if Hibernate auto-configuration is active, because the `ddl-auto` settings are more fine-grained.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,24 +6,17 @@ It is recommended to use a single mechanism for schema generation.
|
||||
|
||||
|
||||
|
||||
[[howto.data-initialization.using-jpa]]
|
||||
=== Initialize a Database Using JPA
|
||||
JPA has features for DDL generation, and these can be set up to run on startup against the database.
|
||||
This is controlled through two external properties:
|
||||
|
||||
* `spring.jpa.generate-ddl` (boolean) switches the feature on and off and is vendor independent.
|
||||
* `spring.jpa.hibernate.ddl-auto` (enum) is a Hibernate feature that controls the behavior in a more fine-grained way.
|
||||
This feature is described in more detail later in this guide.
|
||||
|
||||
|
||||
|
||||
[[howto.data-initialization.using-hibernate]]
|
||||
=== Initialize a Database Using Hibernate
|
||||
You can set `spring.jpa.hibernate.ddl-auto` explicitly and the standard Hibernate property values are `none`, `validate`, `update`, `create`, and `create-drop`.
|
||||
Spring Boot chooses a default value for you based on whether it thinks your database is embedded.
|
||||
It defaults to `create-drop` if no schema manager has been detected or `none` in all other cases.
|
||||
An embedded database is detected by looking at the `Connection` type and JDBC url.
|
||||
`hsqldb`, `h2`, and `derby` are candidates, and others are not.
|
||||
You can set configprop:spring.jpa.hibernate.ddl-auto[] to control Hibernate's database initialization.
|
||||
Supported values are `none`, `validate`, `update`, `create`, and `create-drop`.
|
||||
Spring Boot chooses a default value for you based on whether you are using an embedded database.
|
||||
An embedded database is identified by looking at the `Connection` type and JDBC url.
|
||||
`hsqldb`, `h2`, or `derby` are embedded databases and others are not.
|
||||
If an embedded database is identified and no schema manager (Flyway or Liquibase) has been detected, `ddl-auto` defaults to `create-drop`.
|
||||
In all other cases, it defaults to `none`.
|
||||
|
||||
Be careful when switching from in-memory to a '`real`' database that you do not make assumptions about the existence of the tables and data in the new platform.
|
||||
You either have to set `ddl-auto` explicitly or use one of the other mechanisms to initialize the database.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user