特定于包的Hibernate命名策略

特定于包的Hibernate命名策略,hibernate,naming,Hibernate,Naming,考虑到大型应用程序的不同包中有几个Hibernate实体,我希望确保没有命名冲突。例如,包foo中可能有一个人-实体,包栏中可能有另一个人-实体 现在这两个实体应该映射到如下表名: foo.Person --> FOO_PERSON bar.Person --> BAR_PERSON 然而,我想使用某种NamingStrategy,它会自动实现这一点。Hibernate提供了接口org.Hibernate.cfg.NamingStrategy。我试图扩展DefaultNamingStrategy

考虑到大型应用程序的不同包中有几个Hibernate实体,我希望确保没有命名冲突。例如,包foo中可能有一个
-实体,包栏中可能有另一个
-实体

现在这两个实体应该映射到如下表名:

foo.Person --> FOO_PERSON bar.Person --> BAR_PERSON 然而,我想使用某种NamingStrategy,它会自动实现这一点。Hibernate提供了接口
org.Hibernate.cfg.NamingStrategy
。我试图扩展
DefaultNamingStrategy
,但是(尽管文档中另有说明),您只得到类的非限定名称,因此没有关于包名称的信息


关于这个问题有一个JIRA问题()。鉴于它自2007年开放,我正在寻找一种变通方法或完全不同的方法。有什么想法吗?

如果这些包在不同的项目模块中,您可以尝试将它们放在不同的模式中。这样,它们的表名可能会以相同的方式结束,而您不会在意。想一想。

如果这些包在不同的项目模块中,您可以尝试将它们放在不同的模式中。这样,它们的表名可能会以相同的方式结束,而您不会在意。只是想一想。

一种习惯方言能起作用吗?一种习惯方言能起作用吗?
@Table(name="FOO_PERSON")
public class Person ...

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