我有以下hibernate的情况。
Java类层次结构
Class A ; ( Table X)
Class B extends Class A :
Class C extends Class A :
Class D extends Class B :
Class E extends Class C :
所有这些类都有hbm.xml文件,数据库中只有一个表(表X)。
在hbm文件中,对应于class A
的hbm是根目录,而所有其他对象
hbm fiels是那个根的hbms。
现在我想使用hibernate L2缓存来缓存class B
和class D
。
因此我添加了一个新表(表Y)来表示class B
和class D
。
现在与class B
相关的hbm文件是一个根级别的hbm,我可以缓存B和D实体。
但是,在新表中,我只想添加仅与class B
和class D
相关的列。既然我不想打破
java类层次结构,我希望hibernate在加载class B
或class D
条目时加载从supper类继承的其他属性。我认为
这可以将class B
的hbm定义为<joined-subclass>
,但这样我就失去了缓存能力。
是否有一种方法可以从不同的表中继承超类的负载属性?在此解决方案中,我的缓存要求应该保留。
我使用infinispan作为缓存提供程序。