我有相当多的应用程序,有数百个表。
出于组织目的,我想将表分成几组(比如5个左右),并将它们放在数据库中的不同模式中。我只想使用一个数据库,所以我仍然可以跨模式连接表,所以只需要一个SessionFactory。
但是我不确定如果我们在所有模式中发生名称冲突会发生什么。我可以很容易地在hibernate对象的代码中有不同的包,这不是问题。但是当谈到HQL时,如果我有两个实体,在不同的包中都称为“Customer”,那么有可能在HQL查询中区分它们吗?也许有某种前缀?
任何建议都表示赞赏,或者您尝试执行此操作时遇到的任何其他陷阱。
答案 0 :(得分:1)
我从未尝试过这个,但基本上应该可以。
除非使用实体名称,否则Hibernate不允许多次映射相同的类名(请参阅this question)。 (非常精确:Hibernate不允许多次使用相同的实体名称。当没有指定别的东西时,类的类名称为实体名称。)
文档中的内容并不多。请参阅chapter 5.3, Mapping a class more than once。
实体名称可用于: