Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从单个ibatis查询返回多个类型_Java_Mysql_Ibatis - Fatal编程技术网

Java 从单个ibatis查询返回多个类型

Java 从单个ibatis查询返回多个类型,java,mysql,ibatis,Java,Mysql,Ibatis,我有一个搜索表单,需要包含来自两个不同表的结果。这些表彼此之间没有关系,我们的表是分开的。在我的示例场景中,我们有加油站和杂货店。杂货店表可能具有诸如freezerSize、produceStorage、numberOfCarts等属性。加油站表可能有gasTankSizeInGallons、WindowCleaner加仑等。。。。两个表之间有一些共享字段,即-numberOfEmployees、SquareFeetoStoreSpace、NumberOfShelfs等 我的搜索查询需要同时对加

我有一个搜索表单,需要包含来自两个不同表的结果。这些表彼此之间没有关系,我们的表是分开的。在我的示例场景中,我们有加油站和杂货店。杂货店表可能具有诸如freezerSize、produceStorage、numberOfCarts等属性。加油站表可能有gasTankSizeInGallons、WindowCleaner加仑等。。。。两个表之间有一些共享字段,即-numberOfEmployees、SquareFeetoStoreSpace、NumberOfShelfs等

我的搜索查询需要同时对加油站和杂货店进行排序和显示。我正在考虑使用SQL联合并将不适用的字段设置为0或null。然而,我真的很困惑如何使用ibatis实现这一点,因为这两个对象属于不同的类型:

<select id="searchQuery" parameterClass="java.util.Map" resultClass="????????????????">
    SELECT
        storeName, storeCity, storeState, numberOfCarts, freezerSize, 0 gasTankSizeInGallons, 0 windowCleanerInGallons
    FROM
        grocery_stores
    UNION
    SELECT
        storeName, storeCity, storeState, 0 numberOfCarts, 0 freezerSize, gasTankSizeInGallons, windowCleanerInGallons
    FROM
        gas_stations
    ORDER BY storeState, storeCity, storeName
</select>
注意-实际的查询在order by中有更多的内容,它被分页,select中有更多的字段,select字段中的每个适用字段都有一个where子句

上述查询的resultClass应该是什么?我有一个杂货店和加油站的等级,这两个等级都是从商店延伸出来的。然而,该商店并没有很多专门针对杂货店和加油站的区域。我可以做两个单独的查询,但是结果的排序必须用java完成,而且效率很低,因为它首先需要加载大量数据


谢谢

在谷歌搜索了很多之后,我找到了我自己问题的答案

ibatis鉴别器将在Gastation和groceryStore类别之间进行选择

<resultMap id="searchResultMap" class="Store">
     <discriminator column="storeType" javaType="java.lang.String">
           <subMap value="grocery" resultMap="groceryStoreMap"/>
           <subMap value="gasStation" resultMap="gasStationMap"/>
     </discriminator>
</resultMap>
然后,我会编辑我的查询,在选择字段中添加storeType,并为groceryStore和gasStation创建一个resultMap

注-为了弄清楚这一点,我读了