2011-07-01 3 views
1

J'utilise Hibernate Tools dans Eclipse pour désosser les entités de domaine d'une base de données existante. Je peux plus ou moins avoir tout ce que je veux, bien que j'obtienne toujours un lot de classes "Metamodel" générées à côté de mes classes de domaine. Ce sont des classes avec le même nom, mais suffixé avec et soulignent "_".Classes Metamodel générées par les outils Hibernate

J'ai lu quelques docs sur le concept de métamodèle here, mais je ne suis toujours pas sûr de leur but ...

Est-il sûr pour moi de supprimer simplement ces classes? Si elles ne me sont pas utiles, je préférerais ne pas les avoir encombrer mon explorateur de paquets.

Répondre

2

Les classes Metamodel sont utilisées par l'API "Typesafe Criteria" qui a été ajoutée dans JPA 2.0. Les détails sur cette API sont ici:

http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html_single/#querycriteria

Hibernate EntityManager peut utiliser les classes de métamodèle pour vérifier qu'un critère est valable pour un ensemble donné d'entités. Par exemple, si vous essayez d'écrire une requête qui ajoute une clause "where" à la propriété d'une entité, Hibernate peut valider la propriété qui existe réellement dans votre modèle et générer (je crois) une erreur ou un avertissement de compilation. Avec l'ancienne API Criteria de Hibernate, la seule façon de valider une telle requête était de l'exécuter et de voir si une exception était levée.

Si vous ne prévoyez pas d'utiliser cette API Criteria, il est probablement prudent de supprimer les classes.

+0

Merci Cliff, un excellent résumé. Je garderai les classes pour le moment, au cas où j'aurais plus tard besoin de l'API Criteria. – seanhodges

Questions connexes