
Entity-level cache concurrency strategies (e.g.Querying the second-level cache by the natural key of a given entity Mapping properties to SQL fragments (e.g. Custom CRUD SQL Statements Adding Collection filters (e.g.Extended identifier generators (hi/lo, pooled, pooled-lo).

In order to include new features in JPA, a specification needs to be voted and updated, therefore Hibernate will always include newer features as it is a more agile project.įor example, some features which are implemented in Hibernate but are still not available in JPA are:

Therefore WildFly (and JBoss EAP) bundles Hibernate. For example, WildFly (or JBoss EAP) uses Hibernate as JPA Provider. On the other hand, to be able to use JPA you have to choose a valid Provider. It follows, that you can use Hibernate as standalone product and, behind the hoods, as JPA Provider. It can also have some extra functions which might not be there in JPA. On the other hand, Hibernate is an Object Relational Mapping (ORM) tool and also a JPA Provider which has the implementation of the functions in JPA.From an high level view, JPA is just like an interface without a concrete implementation of it.In this article we are going to explain it in a nutshell. When the context is loaded, EclipseLink will query the database for each table required in the persistence unit and use the results to determine if the table needs to be created or extended.įor more information on this feature, see the create-or-extend-tables entry in "ddl-generation" in Java Persistence API (JPA) Extensions Reference for Oracle TopLink.A fairly common question for developers approaching Object Relational Mapping (ORM) tools like Hibernate is what is the difference between Hibernate and JPA. To use the Create or Extend Database Tables feature, add the following properties to the persistence.xml file. The Create or Extend Database Tables feature can also be used with extensibility to add table columns. You avoid the need to use the Drop and Create Database Tables feature when the schema changes, due to changes in the object model. The Create or Extend Database Tables feature reduces the need to repopulate test data.


In the current release, the Create or Extend Database Tables feature will not rename or delete existing columns.
