2

私は mybatis 3 を使用しています。 @select アノテーションを使用して、マッパー iterface 内に選択クエリを記述しています。

例:

@Select("select * from EMPLOYEE where ID>55")
public List<Employee> getEmployees();

クエリを動的に作成してアノテーションに渡す方法はありますか。注釈ではなくxmlの方法でそれを行う例を見つけました。アノテーションを使用して動的クエリを作成することはできますか? はいの場合、それを行う方法。

質問を明確にするために、私はIDを渡すことについて尋ねているのではなく、動的なwhereステートメントを構築しています。

ありがとう。

4

2 に答える 2

3

私の知る限り、 @Select アノテーションは動的 SQL をサポートしていません。Java Annotations のいくつかの制限によるものだと思います。

myBatis のドキュメントでは、以下を読むことができます。

アノテーションは、単純なステートメントの場合ははるかにクリーンですが、Java アノテーションは制限があり、より複雑なステートメントの場合はより乱雑になります。したがって、何か複雑なことをしなければならない場合は、XML でマップされたステートメントを使用したほうがよいでしょう。

于 2013-02-22T06:38:02.940 に答える
2

MyBatis 3 では、注釈に動的 SQL を含めることができるようになりました (この注を参照してください)。

于 2014-01-09T12:57:54.257 に答える