2010-11-22 6 views
2

Étant donné plusieurs entités Hibernate dans différents paquets d'une grande application, je tiens à m'assurer qu'il n'y a pas de conflits de nommage. Par exemple. il peut y avoir un Person -Entity dans le paquet foo et un autre Person -Entity dans la barre d'outils.Spécifique au package Hibernate NamingStrategy

Maintenant ces deux entités devraient carte aux noms de table comme ceci:

 
foo.Person --> FOO_PERSON 
bar.Person --> BAR_PERSON 

je pourrais utiliser la table annotation @ pour y parvenir:

@Table(name="FOO_PERSON") 
public class Person ... 

@Table(name="BAR_PERSON") 
public class Person ... 

Cependant, je voudrais utiliser une sorte de NamingStrategy, qui le fait automatiquement. Hibernate propose l'interface org.hibernate.cfg.NamingStrategy. J'ai essayé d'étendre le DefaultNamingStrategy, cependant (malgré la documentation indiquant le contraire) vous obtenez seulement le nom non qualifié de la classe et donc aucune information sur le nom du paquet.

Il existe un problème JIRA (http://opensource.atlassian.com/projects/hibernate/browse/HHH-4312) à propos de ce problème. Étant donné que c'est ouvert depuis 2007, je suis à la recherche d'une approche de travail ou totalement différente. Des idées?

+0

Un dialecte personnalisé pourrait-il faire l'affaire? – martin

Répondre

0

Si ces packages se trouvent dans des modules de projet différents, vous pouvez essayer de les placer dans des schémas différents. De cette façon, les noms des tables pourraient finir par être les mêmes et vous ne vous en soucieriez pas. Juste une pensée.

Questions connexes