2016-12-20 5 views
1

私ができる方法があるかどうかを知りたい場合Mybatisインターフェイスが別のクラスを返す。 私は@SelectProviderを使用してSQLを作成しています。Mybatisが別のクラスを返すT

それは次のようになる:

public interface DaoTemplate<T extends Common> { 

    @SelectProvider(method = "findById", type = DaoTemplateImpl.class) 
    public T findfindById(T bean); 

} 

答えて

0

私の知る限りは、要件を理解し、それは私が私のアプリのために行っている何かのようになります。

私は共通の汎用マッパー・インターフェースを定義しています

public interface DataMapper<F, D> { List<D> list(@Param("filter") F filter); D getById(@Param("filter") F filter);

そして、「具体的な」マッパーは、メソッドを宣言する必要はありません。 public interface OrderMapper extends DataMapper<OrderFilter, OrderDto> {}

しかし、SQLをXMLファイル(各コンクリートマッパー1)で定義されているSQLが種類ごとに変更することがあり、注釈のプロパティ値が解決されるため、変数を使用することができないので、@Selectまたは@SelectProvider注釈で行うことができませんコンパイル時に。

関連する問題