8
votes

Y a-t-il une telle version que JPA 3?

afaik, le plus grand et le plus grand que j'ai utilisé est JPA 2.0.

Je suis ignoré que GAE a un pot quelque peu appelé Appengine-Java-SDK-1.6.5 / LIB / UTILISATEUR / ORM / GERONIMO-JPA_3.0_SPEC-1.1.1.JAR. J'ai eu l'impression que GAE a toujours une latence dans l'adoption de la compatibilité avec les derniers protocoles de phase de saignement les plus grands. Il leur a fallu un peu de temps pour adopter JPA 2.0.

Quel est ce jar JPA 3.0 faisant à l'intérieur de GAE SDK Libs? Y a-t-il une telle version que JPA 3.0? Google est-il un-upping à nous cette fois en mettant en œuvre une nouvelle version du protocole avant tout le monde? Existe-t-il une spécification de JPA 3.0 ou une référence implémente quelque part que je pourrais faire référence à?

Je ne suis pas (actuellement) une personne EJB (désolé ... avait décidé d'éviter l'EJB depuis que j'avais une mauvaise expérience avec EJB 1.0 il y a 10 ans).

  • est EJB 3.0 synonyme de JPA 2.0,
  • ou est adopté JPA 2.0 comme sous-ensemble d'EJB 3.0
  • ou est JPA 3.0 = EJB 3.0?

    wrt cette question que j'ai posée: Déplacement de Hibernate EntityManager 3.6.9 à 4.1.2 Connexion MySQL écrasée , Est-ce que Hibernate Entity-Manager 4.x est-il en quelque sorte associé à JPA 3.0 ou au moins une version JPA ultérieurement de 2,0? Je ressens des différences significatives entre l'entité hibernate-Manager 3.x et 4.x (et ont jusqu'à présent évité le déploiement de 4.x).

    Je me rends compte que cette question est plutôt confondre et que j'aurais dû demander à chacun des articles comme une question individuelle, mais j'espère que quelqu'un pourrait les attacher ensemble dans une seule thèse: EJB 3, JPA 2/3 , Geronimo, Hibernate Ent-Mgr 3/4. Merci.


0 commentaires

3 Réponses :


7
votes

Non, il n'y a pas une telle chose (en juin 2012) en tant que JPA3. Il y a JPA1, JPA2 et (dans la planification) JPA2.1. Que Geronimo-Specs Jar est en réalité pour JPA1, mais une personne / groupe très courte a décidé de le nommer comme ça, et voient maintenant les conséquences de celui-ci.

Comme vous dites que GAE prend déjà en charge JPA2, en utilisant v2.x de leur plugin JPA aussi disponible auprès de Maven Repositoyements ou ici http://code.google.com/p/datanucleus-appengine/ et qui fonctionne avec un pot compatible JPA-API V2 (tel que GeronImo-JPA_2.0_SPEC).


0 commentaires

1
votes

Je parle sous la correction ici car les choses auraient pu changer depuis que je travaillais sérieusement avec JPA. Cependant, JPA 2 de ma compréhension est la spécification actuelle. Je doute que le pot que vous avez mentionné est une spécification JPA 2. En 2011, Geronimo n'a pas pris en charge JPA 2 de la boîte à ce moment-là.

En ce qui concerne l'EJB et la JPA:

  1. EJB et JPA sont basés sur les objets de Pojo (Old Java Old Java) de Pojo.
  2. Les classes JPA sont essentiellement une technologie de couche d'accès aux données ..e. Utilisé pour interagir avec votre couche de données.
  3. EJB est essentiellement utilisé pour une couche d'entreprise. Il contiendrait une logique commerciale et une interaction orchestrée entre différentes classes JPA. Par exemple dans JPA, vous pourriez avoir une classe de clients (qui interagit avec la table cliente) et une classe de commandes (qui interagit avec la table des commandes). Dans votre EJB, vous utiliserez ces deux classes pour créer une nouvelle commande pour un client particulier.

    Lorsque vous utilisez JPA en tant que technologie, il vous permet de conserver votre point de vue de la base de données dans une couche. Cette couche pourrait être utilisée par EJB, une application Web (Servlets, JSP, JSP, JSF), des services Web et même une application Swing. Cela gardera la logique d'accès à la base de données cohérente sur toutes ces applications. Les modifications apportées à la base de données nécessiteront alors une modification de la JPA.

    Il s'agit d'une explication très simplifiée des différences et de ce sujet est vraiment profonde, mais ces points devraient vous aider à différencier les deux.

    Au fait, la nouvelle spécification EJB fabrique vraiment des haricots très faciles à utiliser, développer et déployer. J'ai de la chance que j'ai manqué la spécification originale il y a toutes ces années. Actuellement, ils sont très faciles à utiliser.

    J'espère que cela aide à préciser un peu la brume.


0 commentaires

7
votes

Comme d'autres personnes ont dit, JPA 2.0 est la version actuelle (partie de Java EE 6) et la version suivante va être JPA 2.1 qui est actuellement en spécification ( JSR 338 ) et être inclus dans Java Ee 7. Il n'y a pas encore JPA 3 à ce jour, de sorte que le pot est juste mal nommé.

JPA 1.0 a été introduit dans le cadre de Java EE 5, séparant la partie de persistance de la spécification EJB (Java EE 5 introduit donc EJB 3.0 et JPA 1.0, plus de haricots d'entité, ouais!). Java EE 6 puis inclus EJB 3.1 et JPA 2.0.

Java EE 7 comprendra EJB 3.2 et JPA 2.1.


0 commentaires