2010-09-22 6 views
2

Je fais mes premiers pas avec JPA (Hibernate). L'idée générale est de se connecter à une base de données existante pour effectuer des requêtes complexes. Je pense, hibernate est un bon compagnon pour cette tâche, mais ...JPA - désactiver la validation de persistence.xml

... pour commencer, j'ai créé un bean, les fichiers de configuration persistence.xml et hibernate.cfg.xml et quelques lignes de code une méthode principale, en commençant par:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("foo"); 

il lit le fichier persistence.xml mais, parce que je suis déconnecté de l'Internet, il ne peut pas lire pour valider persistence.xml le fichier de schéma (XSD) et se plaint d'exceptions. (Et je n'ai pas une copie locale de persistence.xsd dans cet environnement). J'ai essayé de supprimer l'attribut schemalocation, mais cela n'a pas aidé. Pas de grammaire, pas d'APP!

Existe-t-il un moyen/une astuce/une solution de contournement pour désactiver la validation de document au moins pour l'analyse de persistence.xml?

Répondre

3

Extrait de JPA

Le conteneur/fournisseur de presistence (Hibernate) doit valider le fichier persistence.xml par rapport au schéma persistence_1_0.xsd et signaler toute erreur de validation

..

Les fichiers de configuration de persistance doivent indiquer le persi schéma stence en utilisant l'espace de noms de persistance

http://java.sun.com/xml/ns/persistence 

et indiquer la version du schéma en utilisant l'élément version comme indiqué ci-dessous

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
      http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
      version="1.0"> 

L'élément indiqué ci-dessus est valide pour JPA 1.0 Mettre à jour vers la version 2.0 si vous utilisez JPA 2.0

+0

La balise de persistance vous semble familière, tout comme la mienne - donc il n'y a pas moyen ** d'utiliser JPA si vous n'avez pas accès à ce fichier de schéma? –

+1

@Andreas_D Dans l'environnement Java SE, le fournisseur de persistance doit valider le fichier persistence.xml par rapport au schéma persistence_1_0.xsd. Si vous utilisez Hibernate en tant que fournisseur de persistance, il doit contenir le fichier de schéma (je suis presque sûr qu'il est stocké dans le fichier jar). Je dois le dire parce que quand j'ai essayé JPA pour la première fois (il ya environ 4 ans), j'ai oublié de déclarer l'attribut de version et vous savez (un gros mal de tête) –

+0

La malchance - il n'y a rien dans mes pots d'hibernation - mais il y a une chance , qu'ils sont des constructions personnalisées et ne contiennent rien d'autre que les fichiers de classe ... on dirait que je dois imprimer le schéma et le saisir dans l'autre système maintenant * sigh * –

Questions connexes