我需要为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可以使用这种方法来添加像这样的过滤结果吗?
答案 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>