Hibernate继承搜索
我将试着总结我的问题 我有一个基类“base”,它有三个属性。它继承了四个类——“A”、“B”、“C”和“D”。它们添加自己的附加属性。我已将此映射为InheritanceType.JOINED。现在我想搜索“基本”实体,这意味着我搜索所有“A”、“B”、“C”和“D”实体的公共属性。我知道怎么做。Hibernate支持开箱即用 但我想有一个功能,不是搜索所有类型,而是搜索其中的一部分。例如,有复选框,用户选择搜索“A”和“D”。同样,搜索基于“基类”的三个公共属性。我是否必须向基类添加额外的列来区分类型并手动填充它?我肯定Hibernate有现成的东西,但我找不到 问候,,Hibernate继承搜索,hibernate,search,inheritance,Hibernate,Search,Inheritance,我将试着总结我的问题 我有一个基类“base”,它有三个属性。它继承了四个类——“A”、“B”、“C”和“D”。它们添加自己的附加属性。我已将此映射为InheritanceType.JOINED。现在我想搜索“基本”实体,这意味着我搜索所有“A”、“B”、“C”和“D”实体的公共属性。我知道怎么做。Hibernate支持开箱即用 但我想有一个功能,不是搜索所有类型,而是搜索其中的一部分。例如,有复选框,用户选择搜索“A”和“D”。同样,搜索基于“基类”的三个公共属性。我是否必须向基类添加额外的列
Petar您可以在HQL from子句中命名多个实体:
from A,D where prop1=:value
也许您需要在where子句中单独命名属性(我希望不会,但您必须尝试):
您可以在HQL from子句中命名多个实体:
from A,D where prop1=:value
也许您需要在where子句中单独命名属性(我希望不会,但您必须尝试):
我试过上面写的东西,效果很好。因此,在“Base”实体中添加一列“type”,以区分子实体。查询是:
“从基where(prop1=:value1)和(prop2=:value2)和(prop3=:value3)和(键入('1','4')”
我尝试了我上面写的内容,并且效果很好。因此,在“Base”实体中添加一列“type”,以区分子实体。查询是:“from Base where(prop1=:value1)and(prop2=:value2)and(prop3=:value3)and(键入('1','4')”
EJB,谢谢您的回答!我要试一试。但我一直在寻找类似“from Base where prop1=:value and TypeOfChilds in(A.class,D.class)”的内容。Hibernate是否可能实现这一点?我尝试了您的建议,但这两个建议对我都不起作用。也许我会在基类中添加一个额外的列“type”来区分。因此查询将如下所示:from Base where prop1=:value和((type=1)或(type=4))。但我觉得有更好的解决方案。EJB,谢谢你的回答!我会尝试一下。但我一直在寻找类似“from Base where prop1=:value和TypeOfChilds in(a.class,D.class)的东西。Hibernate可能吗?我试过你的建议,但两个都不适合我。也许我会在基类中添加一个额外的列“type”来区分。因此,查询将如下所示:“from Base where prop1=:value and((type=1)或(type=4))”。但我觉得有更好的解决办法。