最简单的方法是将不经常使用的属性映射为惰性:
<property name="extendedProperty" lazy="true" />... or using Annotations ...@Basic(fetch = FetchType.LAZY)String getExtendedProperty() { ... }Hibernate最初不会加载此类属性。相反,它们将按需加载(首次访问时)。您可以通过
fetch allproperties在HQL查询中使用子句来强制Hibernate加载所有属性。
另一种可能的情况是实际上将两个完全独立的实体映射到同一张表,但使其中一个不变。请记住,Hibernate 将
它们视为不同的实体,并且第一级/第二级缓存对于这两者是完全分开的(这就是不变性很重要的原因)。
你将 不 能够实现通过继承映射此功能,因为Hibernate 总是 会返回一个实际的具体的实体类型。看看我对HibernateInheritanceStrategy问题的回答以获取详细说明。



