java - Mybatis 返回不同的 T 类

标签 java mybatis

我想知道是否有任何方法可以使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/

相关文章:

java - 如何获取一个月中特定周的开始日期和结束日期

Java Runtime.maxMemory 不正确?

mysql - 是否可以在不使用 POJO 的情况下从 MyBatis 调用 MySQL 存储过程?

java - 在这种情况下,Eclipse 的 Java 的空对象预测是否错误?

java - 在 java 中编写自定义 jdbc 驱动程序是一个非常基本的驱动程序

java - 使用结果集将大数据从数据库导出到 Excel

java - 在 MyBastis 中,如何将数据库表名称(例如 CUSTOMER_VACATION_PLAN)与 Java 类 CustomerVacationPlan 映射?

java - 为什么接口(interface)和xml映射器文件必须在同一个包中并具有相同的名称?

caching - 外部刷新 MyBatis 缓存(映射器之外)

java - MyBatis 将数据库和对象映射在一起