我会尽量总结我的问题。休眠继承搜索
我有一个基类“基”与三个属性。四类继承它 - “A”,“B”,“C”和“D”。他们添加自己的附加属性。我用InheritanceType.JOINED映射了这个。现在我想搜索“Base”实体,这意味着我搜索所有“A”,“B”,“C”和“D”实体的公共属性。我知道该怎么做。 Hibernate支持它开箱即用。
但我想有一个功能不是搜索所有类型,而是搜索其中的一部分。例如,有复选框,用户选择搜索“A”和“D”。再次搜索“基础”类的共同三个属性。我是否需要向基类添加额外的列来区分类型并手动填充它?我确信Hibernate有一些开箱即用的功能,但我找不到它。
问候, 斯托
EJB,谢谢你的回答!我会试一试。但我正在寻找像“从基地where prop1 =:value和TypeOfChilds in(A.class,D.class)。这可能与休眠? – 2010-01-19 09:58:15
不是我知道,对不起。 – EJB 2010-01-19 10:03:28
我试过你的建议,但他们都不适合我,也许我会添加一个额外的列“类型”到基类来区分。因此,查询将如下所示:“from Base where where prop1 =:value and((type = 1 )或(type = 4))“,但我觉得有一个更好的解决方案。 – 2010-01-19 15:57:11