0
フィルタ条件に対して実行する事前クエリが必要であり、実際のフェッチを実行するために結果を渡す必要があります。MyBatis @Resultプロパティの代わりに自己オブジェクトにマップする
私は、オブジェクト全体の代わりに名前付きパラメータに結果をマップするにはどうすればよい@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);
次のよう
Select * from Table_a where id in (select id from Table_b where X=?)
MyBatisのマッパーに見えますか?
私はClassBのインスタンスを取得し、ClassAにgetterを使用することができます。 直接の方法はありますか?または このようなフィルタ結果を追加する方法はmyBatisで利用できますか?
は、なぜあなたが選択するいずれかでこれをやっていませんか? '@Select(Select * from Table_a idはTable_bからidを選択します。ここではX =#{xValue、mode = IN、jdbcType = VARCHAR}))") ClassA getA(整数ID); ' – griFlo
断片化アプローチを使用して別々の表を一緒に維持する 表Bに関連する変更があった場合dosenotはtableAを使用して問合せを変更する必要がある – Rajadurai