我想知道是否有任何方法可以使Mybatis
接口(interface)返回不同的类。
我正在使用 @SelectProvider
创建 sql;
就像下一个:
public interface DaoTemplate<T extends Common> {
@SelectProvider(method = "findById", type = DaoTemplateImpl.class)
public T findfindById(T bean);
}
最佳答案
据我了解要求,它看起来像是我为我的应用程序所做的事情:
我定义了一个通用的通用映射器接口(interface):
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 必须针对每种类型进行更改,并且不能使用变量,因为注释属性值在编译时解析。
关于java - Mybatis 返回不同的 T 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41240101/