Maison >Java >javaDidacticiel >Comment puis-je définir des entités dans persistence.xml pour JPA ?

Comment puis-je définir des entités dans persistence.xml pour JPA ?

DDD
DDDoriginal
2024-11-28 08:02:10442parcourir

How can I define entities in persistence.xml for JPA?

Entités dans persistence.xml

Dans l'API Java Persistence (JPA), le fichier persistence.xml indique au fournisseur de persistance les unités de persistance dans l'application et sert de fichier de configuration. L'une de ses fonctions est de définir les entités à gérer par l'unité de persistance.

Analyse automatique des entités

JPQL recherche automatiquement les entités dans les packages Java avec les classes spécifié dans le champ éléments de persistance.xml. Cependant, cette approche n'est pas obligatoire et d'autres mécanismes peuvent être utilisés pour définir les entités.

Utilisation de l'élément jar-file

Au lieu de lister les entités manuellement, vous pouvez utiliser l'élément jar-file pour spécifier un ou plusieurs fichiers JAR contenant les classes d'entités. Le fournisseur de persistance analysera ces fichiers JAR à la recherche de classes annotées avec @Entity.

<persistence>
    <persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
        <jar-file>MyOrderApp.jar</jar-file>
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="validate" />
            <property name="hibernate.show_sql" value="true" />
        </properties>
    </persistence-unit>
</persistence>

Détection automatique d'Hibernate

Hibernate prend spécifiquement en charge la détection automatique des entités, même dans Applications JavaSE. Pour activer cela, ajoutez la propriété hibernate.archive.autodetection à persistence.xml :

<persistence>
    <persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
        <!-- Hibernate auto-detection is spec compliant in Java EE only. -->
        <properties>
            <property name="hibernate.archive.autodetection" value="class, hbm" />
            <property name="hibernate.hbm2ddl.auto" value="validate" />
            <property name="hibernate.show_sql" value="true" />
        </properties>
    </persistence-unit>
</persistence>

Conclusion

Bien qu'il ne soit pas obligatoire de spécifier les entités directement dans la persistance .xml, cela garantit un contrôle explicite sur les classes gérées par le fournisseur de persistance. L'utilisation d'éléments de fichier jar ou de la fonction de détection automatique d'Hibernate offre plus de flexibilité dans la gestion des entités.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn