我有3张桌子。
Table A - pk_id, FK_B_Id(foreign key of Table B),...
Table B - pk_id, name....
Table C - pk_id, FK_A_Id(foreign key of Table A), name...
我的搜索结果基于Table A
。在表A中,记录与表B或表c相关联。在结果集中,我显示name
。如何根据名称对搜索结果进行排序?
答案 0 :(得分:0)
我可以为我的问题找到解决方案,我想与大家分享。
我在表A hbm.xml文件中添加了一个带有公式的新属性(“name”)。然后使用此属性进行排序。
这是我添加到表A hbm文件的属性。
<property name="name" formula="(SELECT COALESCE((SELECT t.NAME FROM TABLE_B t WHERE t.PK_ID = FK_TABLE_A),(SELECT n.NAME FROM TABLE_C n WHERE n.FK_TABLE_A=PK_ID) ,'') FROM DUAL)"/>