Question

J'essaie d'apprendre JPA et je veux créer une application de ligne de commande Java simple qui utilisera JPA pour interroger et mettre à jour une table de base de données. J'ai cartographié le code simple nécessaire pour le faire. Mais je ne sais pas comment configurer la structure du répertoire, où placer le fichier persistance.xml, l'emballage, etc. Ce n'est qu'un exercice d'apprentissage rapide et sale, donc je veux garder cela aussi simple que possible. Quelqu'un peut-il expliquer les étapes pour ce faire?

J'utilise weblogic 10.3.

Était-ce utile?

La solution

persistance.xml va dans le META-INF Répertoire qui est au même niveau que vos cours de persistance. Voici un exemple de quelques configurations valides et non valides. Dans les applications non java ee que j'ai écrites, je construis le pot avec persistance.xml WEB-INF/classes/META-INF/, parce que mes cours JPA sont en WEB-INF/classes/.

Autres conseils

Je ne sais pas comprendre ce que WebLogic a à voir avec une application de ligne de commande Java :)

De toute façon, tout Les détails que vous recherchez sont disponibles dans le Unités de persévérance section de Le tutoriel Java EE 5 que je cite ci-dessous:

Unités de persévérance

Une unité de persistance définit un ensemble de toutes les classes d'entité qui sont gérées par EntityManager instances dans une application. Cet ensemble de classes d'entités représente les données contenues dans un seul magasin de données.

Les unités de persistance sont définies par le persistence.xml fichier de configuration. Le fichier de pot ou le répertoire dont META-INF Le répertoire contient persistence.xml est appelé la racine de l'unité de persistance. La portée de l'unité de persistance est déterminée par la racine de l'unité de persistance.

Chaque unité de persistance doit être identifiée avec un nom unique à la portée de l'unité de persistance.

Les unités persistantes peuvent être emballées dans le cadre d'un fichier JAR WAR ou EJB, ou peuvent être emballées sous forme de fichier JAR qui peuvent ensuite être incluses dans un fichier de guerre ou d'oreille.

Si vous emballez l'unité persistante comme un ensemble de classes dans un fichier JAR EJB, persistence.xml devrait être placé dans le pot EJB META-INF annuaire.

Si vous emballez l'unité de persistance comme un ensemble de classes dans un fichier de guerre, persistance.xml doit être situé dans le fichier de guerre WEB-INF/classes/META-INF annuaire.

Si vous emballez l'unité de persistance dans un fichier JAR qui sera inclus dans un fichier de guerre ou d'oreille, le fichier JAR doit être localisé:

  • Dans le WEB-INF/lib Répertoire d'une guerre.
  • Au niveau supérieur d'un fichier d'oreille.
  • Dans le répertoire de la bibliothèque du fichier EAR.

La persistence.xml Dossier

persistence.xml définit une ou plusieurs unités de persistance. Ce qui suit est un exemple persistence.xml dossier.

<persistence>
    <persistence-unit name="OrderManagement">
        <description>This unit manages orders and customers.
            It does not rely on any vendor-specific features and can
            therefore be deployed to any persistence provider.
        </description>
        <jta-data-source>jdbc/MyOrderDB</jta-data-source>
        <jar-file>MyOrderApp.jar</jar-file>
        <class>com.widgets.Order</class>
        <class>com.widgets.Customer</class>
    </persistence-unit>
</persistence>

Ce fichier définit une unité de persistance nommée OrderManagement, qui utilise une source de données consacrée à JTA jdbc/MyOrderDB. La jar-file et class Les éléments spécifient les classes de persistance gérées: classes d'entités, classes intégrées et superclasses mappées. La jar-file L'élément spécifie des fichiers JAR qui sont visibles pour l'unité de persistance emballée qui contiennent des classes de persistance gérées, tandis que l'élément de classe nomme explicitement des classes de persistance gérées.

La jta-data-source (pour les sources de données consacrées à la JTA) et non-jta-data-source (Sources de données sans JTA) Les éléments spécifient le nom JNDI global de la source de données à utiliser par le conteneur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top