web-dev-qa-db-fra.com

peut-on utiliser jpa sans hibernation

Je suis nouveau à JPA.

Selon ma compréhension, JPA est une spécification et Hibernate implémente JPA et fournit des fonctionnalités supplémentaires ainsi que des méthodes JPA.

Mais je parcourais les tutoriels JPA, où en utilisant l'objet EntityManager, nous pouvons effectuer CRUD sur des données, sans utiliser les bibliothèques Hibernate!

Alors quelqu'un peut-il me faire savoir s'il vous plaît

  1. Puis-je utiliser JPA seul en utilisant des méthodes EntityManager, sans utiliser Hibernate?

Veuillez mentionner un lien ou un exemple utile.

Beaucoup apprécier la réponse.
Merci.

17
Ali

Vous avez raison JPA est la spécification. Hibernate, EclipseLink sont quelques-unes de ses implémentations.

Vous devez spécifier le fournisseur de persistance (Hibernate, EclipseLink) pour pouvoir utiliser l'implémentation JPA. Les fournisseurs de persistance ont les classes implémentation pour les spécifications JPA.

15
bornleo

Vous ne pouvez pas simplement utiliser JPA, car il s'agit d'une API =), mais il existe de nombreuses implémentations JPA:

  1. EclipseLink
  2. ObjectDB
4
Sergey_Klochkov

Vous pouvez utiliser JPA seul sans utiliser Hibernate et Before devrait connaître les principaux points entre Hibernate et JPA comme indiqué ci-dessous.

Hibernate

  1. Hibernate est un framework ORM qui prend en charge l’ORM complet et utilise également les fonctionnalités JPA.
  2. Le cache de second niveau est disponible, donc les performances sont très bonnes
  3. Son support .Net en utilisant l'outil NHibernate
  4. Son génère HQL (Hibernate Query Language)

JPA

  1. JPA fait partie de la spécification EJB publiée dans J2EE 1.5 et sera utilisée pour Java ainsi que J2EE.
  2. Le cache de second niveau n'est pas disponible, donc les performances ne sont pas bonnes.
  3. Ce n'est pas supporté par .Net
  4. Son génère JPQL (Java Persistence Query Language)
  5. En tête de tout fournisseur de persistance comme Hibernate, nous pouvons utiliser JPA.
1
Raja Chinnappan

JPA peut être utilisé sans fournisseur JPA, également appelé Hibernate, EclipseLink, etc., uniquement si le serveur d'applications dispose déjà d'une implémentation JPA. Sur les tutoriels que vous avez vus, vous avez probablement vu des démonstrations réalisées sur un tel serveur d'applications.

1
razvanspt

Si vous ne souhaitez pas utiliser Hibernate (ou tout autre fournisseur JPA), vous devez alors implémenter votre propre fournisseur en fournissant une implémentation pour l'interface javax.persistence.spi.PersistenceProvider. La question est: pourquoi avez-vous besoin de réinventer la roue? Si vous n'aimez pas Hibernate, vous pouvez utiliser l'un des nombreux autres fournisseurs JPA parmi lesquels choisir.

1
Laabidi Raissi

vous ne pouvez pas utiliser JPA seul. JPA est une spécification, qui définit une API pour les mappages relationnels-objets et pour la gestion des objets persistants. Vous avez besoin d'un fournisseur JPA pour l'implémenter, comme Hibernate, EclipseLink.

0
Sudabe-Neirizi