bootstrapping overview
This commit is contained in:
parent
0157d1a1b6
commit
1a28bb2a3c
|
@ -56,7 +56,7 @@
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Note that since Hibernate 5.2, the native API extends the JPA API rather than wrapping it.
|
Note that since Hibernate 5.2, the native API extends the JPA API rather than wrapping it.
|
||||||
For example,<code>SessionFactory</code> extends <code>EntityManagerFactory</code>, and
|
For example, <code>SessionFactory</code> extends <code>EntityManagerFactory</code>, and
|
||||||
<code>Session</code> extends <code>EntityManager</code>.
|
<code>Session</code> extends <code>EntityManager</code>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -75,6 +75,36 @@
|
||||||
The full power of Hibernate can only be unlocked via judicious use of these extra annotations.
|
The full power of Hibernate can only be unlocked via judicious use of these extra annotations.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<h3>Bootstrapping Hibernate</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
There are four basic ways to obtain an instance of Hibernate:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
as a JPA <em>persistence provider</em>, by using
|
||||||
|
{@link jakarta.persistence.Persistence#createEntityManagerFactory},
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
by using the "simplified" {@link org.hibernate.cfg.Configuration} API,
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
for those who enjoy dirty hands, by using the APIs in {@link org.hibernate.boot}, or
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
in a <em>container environment</em> like
|
||||||
|
<a href="https://www.wildfly.org">WildFly</a> or <a href="https://quarkus.io">Quarkus</a>,
|
||||||
|
by letting the container take care of the bootstrap process and of injecting the
|
||||||
|
{@code EntityManagerFactory} or {@code SessionFactory}.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
All major Java application servers and microservice frameworks come with built-in support for
|
||||||
|
Hibernate. Such container environments also typically feature facilities to automatically
|
||||||
|
manage the lifecycle of a {@code EntityManager} or {@code Session} and its association with
|
||||||
|
container-managed transactions.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h3>Popular extension points</h3>
|
<h3>Popular extension points</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -105,6 +135,11 @@
|
||||||
{@link org.hibernate.context.spi} defines support for context-bound "current" sessions
|
{@link org.hibernate.context.spi} defines support for context-bound "current" sessions
|
||||||
and contextual multi-tenancy,
|
and contextual multi-tenancy,
|
||||||
</li>
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
More advanced extension points include:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
{@link org.hibernate.cache.spi} defines an SPI for integrating with second-level cache
|
{@link org.hibernate.cache.spi} defines an SPI for integrating with second-level cache
|
||||||
providers,
|
providers,
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Note that since Hibernate 5.2, the native API extends the JPA API rather than wrapping it.
|
Note that since Hibernate 5.2, the native API extends the JPA API rather than wrapping it.
|
||||||
For example,<code>SessionFactory</code> extends <code>EntityManagerFactory</code>, and
|
For example, <code>SessionFactory</code> extends <code>EntityManagerFactory</code>, and
|
||||||
<code>Session</code> extends <code>EntityManager</code>.
|
<code>Session</code> extends <code>EntityManager</code>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -75,6 +75,36 @@
|
||||||
The full power of Hibernate can only be unlocked via judicious use of these extra annotations.
|
The full power of Hibernate can only be unlocked via judicious use of these extra annotations.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<h3>Bootstrapping Hibernate</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
There are four basic ways to obtain an instance of Hibernate:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
as a JPA <em>persistence provider</em>, by using
|
||||||
|
{@link jakarta.persistence.Persistence#createEntityManagerFactory},
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
by using the "simplified" {@link org.hibernate.cfg.Configuration} API,
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
for those who enjoy dirty hands, by using the APIs in {@link org.hibernate.boot}, or
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
in a <em>container environment</em> like
|
||||||
|
<a href="https://www.wildfly.org">WildFly</a> or <a href="https://quarkus.io">Quarkus</a>,
|
||||||
|
by letting the container take care of the bootstrap process and of injecting the
|
||||||
|
{@code EntityManagerFactory} or {@code SessionFactory}.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
All major Java application servers and microservice frameworks come with built-in support for
|
||||||
|
Hibernate. Such container environments also typically feature facilities to automatically
|
||||||
|
manage the lifecycle of a {@code EntityManager} or {@code Session} and its association with
|
||||||
|
container-managed transactions.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h3>Popular extension points</h3>
|
<h3>Popular extension points</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -105,6 +135,11 @@
|
||||||
{@link org.hibernate.context.spi} defines support for context-bound "current" sessions
|
{@link org.hibernate.context.spi} defines support for context-bound "current" sessions
|
||||||
and contextual multi-tenancy,
|
and contextual multi-tenancy,
|
||||||
</li>
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
More advanced extension points include:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
{@link org.hibernate.cache.spi} defines an SPI for integrating with second-level cache
|
{@link org.hibernate.cache.spi} defines an SPI for integrating with second-level cache
|
||||||
providers,
|
providers,
|
||||||
|
|
Loading…
Reference in New Issue