org.zodiac.mybatisplus.binding.Binder Maven / Gradle / Ivy
package org.zodiac.mybatisplus.binding;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.util.List;
import org.zodiac.mybatisplus.model.MyBatisPlusPagination;
/**
* 绑定器统一调用入口类。
*
*/
public class Binder {
private Binder() {
super();
}
/**
* 关联查询一条主表数据。
*
* @param DTO类型
* @param 实体类型
* @param queryWrapper 查询条件
* @param entityClazz 返回结果entity/vo类
* @return 结果
*/
public static T joinQueryOne(QueryWrapper queryWrapper, Class entityClazz) {
return JoinsBinder.queryOne(queryWrapper, entityClazz);
}
/**
* 关联查询符合条件的全部主表数据集合(不分页)。
*
* @param DTO类型
* @param 实体类型
* @param queryWrapper 调用QueryBuilder.to*QueryWrapper得到的实例
* @param entityClazz 返回结果entity/vo类
* @return 结果
*/
public static List joinQueryList(QueryWrapper queryWrapper, Class entityClazz) {
return JoinsBinder.queryList(queryWrapper, entityClazz);
}
/**
* 关联查询符合条件的指定页数据(分页)。
*
* @param DTO类型
* @param 实体类型
* @param queryWrapper 调用QueryBuilder.to*QueryWrapper得到的实例
* @param entityClazz 返回结果entity/vo类
* @param myBatisPlusPagination 分页
* @return 实体列表
*/
public static List joinQueryList(QueryWrapper queryWrapper, Class entityClazz,
MyBatisPlusPagination myBatisPlusPagination) {
return JoinsBinder.queryList(queryWrapper, entityClazz, myBatisPlusPagination);
}
/**
* 自动转换和绑定单个VO中的注解关联(禁止循环调用,多个对象请调用convertAndBind(voList, voClass))。
*
* @param 实体类型
* @param VO类型
* @param entity 需要转换的对象
* @param voClass 需要转换的VO class
* @return VO对象
*/
public static VO convertAndBindRelations(T entity, Class voClass) {
return RelationsBinder.convertAndBind(entity, voClass);
}
/**
* 自动转换和绑定多个VO中的注解关联。
*
* @param 实体类型
* @param VO类型
* @param entityList 需要转换的对象列表
* @param voClass VO class
* @return VO对象列表
*/
public static List convertAndBindRelations(List entityList, Class voClass) {
return RelationsBinder.convertAndBind(entityList, voClass);
}
/**
* 自动绑定单个VO的关联对象(禁止循环调用,多个对象请调用bind(voList))。
*
* @param VO类型
* @param vo 需要注解绑定的对象
*/
public static void bindRelations(VO vo) {
RelationsBinder.bind(vo);
}
/**
* 自动绑定多个VO集合的关联对象。
*
* @param VO类型
* @param voList 需要注解绑定的对象集合
*/
public static void bindRelations(List voList) {
RelationsBinder.bind(voList);
}
}