PolymorphismType.EXPLICIT还有其他用例比“轻量级”模式?

时间:2013-06-25 14:32:27

标签: java hibernate

我最近回答a question有关为什么PolymorphismType.EXPLICIT不会将查询限制为特定请求的类的原因。我对答案的研究让我怀疑为什么会有这样的注释,以及它有什么好处。

Hibernate documentation说明如下:

  

显式多态性意味着只有显式命名该类的查询才会返回类实例。命名该类的查询将仅返回映射的子类的实例。

...然而,正如Stack Overflow several times提出的那样,措词有点令人困惑。人们希望使用它来避免子类表之间的连接,并且它不会按照预期的方式完成工作。具体来说,如果您有A-> B类层次结构,并且A标记为EXPLICIT,则A上的查询也将检索B实例,因为它们是“......子类映射”。

我认为,这个注释的使用方式是将B标记为EXPLICIT。然后对A的查询将仅返回A的 实例,不仅对于实际为A类的对象,而且对于类型B的对象,仅填充共享字段。这样可以使用注释对于lightweight pattern

所以我的问题是:除了启用轻量级模式之外,这个注释还有其他好的用例吗?作为第二个问题,是否有关于它如何与各种InheritanceType值交互的文档,特别是每个类加入的子类和表?

0 个答案:

没有答案