1 回答

TA貢獻1770條經驗 獲得超3個贊
不完全是這樣,但它可以幫助找到解決方案。有相應的要求:
@Select("Select c.id, c.name, c.towerid, s.id as s_id, s.size as s_size, s.type as s_type, s.computer_id as s_computer_id from computer c left join screen s ON s.computer_id = c.id where c.id=#{computerId}")
@ResultMap("ComputerMapper.computer")
public Computer getcomputerById(@Param("computerId") Integer computerId);
這是結果圖:
<resultMap type="entity.Computer" id="computer">
? ? ? ? <id column="id" property="id"/>
? ? ? ? <result column="name" property="name"/>
? ? ? ? <association property="tower" column="towerid" javaType="entity.Tower" select="getTowerbycomputerid"/>
? ? ? ? <collection ofType="entity.Screen" property="screen" javaType="ArrayList" resultMap="screenResult" columnPrefix="s_"/>
? ? </resultMap>
現在 resultMap 和獲取塔的請求:
<resultMap id="towerResult" type="entity.Tower">
? ? ? ? <id property="id" column="id"/>
? ? ? ? <result property="ram" column="ram"/>
? ? ? ? <result property="stockage" column="stockage"/>
? ? </resultMap>
? ? <select id="getTowerbycomputerid" resultMap="towerResult">
? ? ? ? Select t.id, t.ram, t.stockage from tower t where t.id = #{towerid}
? ? </select>
現在一切正常。在得到這個來選擇塔之前:
<select id="getTowerbycomputerid" resultMap="towerResult">
? ? ? ? ? ? Select t.id, t.ram, t.stockage from tower t inner join computer c on c.towerid = t.id where c.id = #{computerId}
? ? ? ? </select>
這就是結局。
添加回答
舉報