MyBatis @Result映射到自身对象而不是属性

时间:2016-11-08 14:34:32

标签: parameters mybatis ibatis

我需要为Filter条件执行预查询,并将结果传递给实际的fetch。

Select * from Table_a where id in ( select id from Table_b where X=?)

MyBatis Mapper看起来像是Follows

@Select("Select * from Table_a where id in (#{id, mode=IN, jdbcType=INTEGER})")
ClassA getA(Integer id);

@Select("select id from Table_b where X=#{xValue, mode=IN, jdbcType=VARCHAR}")
@Results(value = { @Result( property = "this", column = "ID", one = @One(select = "getA")) })
ClassA getAfromB(String xValue);

如何将结果映射到整个对象而不是命名参数?

我知道我可以获得ClassB的实例并将getter用于ClassA。 有直接的方法吗?要么 myBatis可以使用这种方法来添加像这样的过滤结果吗?

1 个答案:

答案 0 :(得分:-1)

确实单个查询就足够了,最好避免使用连接进行子选择:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><a class="dropbtn"> Has Children1</a>
     <ul class="drop-menu">
     <li>SubItem1</li>
      <li>SubItem2</li>
       <li>SubItem3</li>
     </ul>
</li>
<li><a class="dropbtn"> Has Children2</a>
     <ul class="drop-menu">
     <li>SubItem1</li>
      <li>SubItem2</li>
       <li>SubItem3</li>
     </ul>
</li>
<li><a>No children</a></li>
<li><a> No children</a></li>
</ul>