2016-12-20 2 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 для каждого конкретного картографа), не может быть сделан в @Select или @SelectProvider аннотациях, поскольку SQL должен изменяться для каждого типа, и переменный не может быть использован, так как значения аннотации собственности разрешается во время компиляции.