# AutoMapper
**Repository Path**: 85024610/AutoMapper
## Basic Information
- **Project Name**: AutoMapper
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2018-03-24
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AutoMapper
## 拦截器
* 重新创建MappedStatement, 防止并发查询时返回映射结果类型出现错误
```
com.automapper.interceptor.AutoMapperCacheInterceptor
```
* 在ExecutorType.SIMPLE模式下替换原来的SimpleExecutor对象,实现批量入库操作。 注意:现在只支持批量update
```
com.automapper.interceptor.AutoMapperChangeExecutorTypeInterceptor
```
* 判断参数是null或集合是空集合拦截器
```
com.automapper.interceptor.AutoMapperCheckEmptyInterceptor
```
* 自动生成sql语句拦截器
```
com.automapper.interceptor.AutoMapperInterceptor
```
## Spring.xml配置
* 拦截器配置的内容
```
classpath*:mapper/*Mapper.xml
classpath*:com/automapper/AutoMapper.xml
isNullToDefaultValue=true
```
## Java Bean 注解配置
```
//对应数据表的表名
@Table(name="job_state_index")
public class JobStateIndex {
@Id //主键,必须与@Column一起使用
@Column(name="id") //字段名
private Long id;
@Column(name="order_sn")
private String orderSn;
@Column(name="index_num")
private Integer indexNum;
@Column(name="create_time")
private Date createTime;
@OneToMany //级联查询
private List packageOutboundDetails;
}
@Table(name="package_outbound_detail")
public class PackageOutboundDetail {
@JoinColumn(name="id") //关联父类字段
@Column(name="header_id")
private String headerId;
}
```
## 查询方法
* 查询使用 Criteria 进行查询条件的创建和组装,此查询借鉴hibernate设计,用过hibernate就知道怎样用
* Criteria提供以下方法进行查询条件的创建和组装
```
public Criteria add(Expression expression); //添加查询条件,目前where语句使用多个条件过滤条件只能用and
public Criteria setMaxResults(int maxResults); //获取查询最大记录数
public Criteria addAssociation(Class> clazz, String tableName, String alias); //设置级联查询对象
public void setFetchMode(FetchMode fetchMode); //级联查询fetch模式:ASSOCIATION_PAGE_BY_PARENT—父表分页然后再关联子表查询
```
* Restrictions提供多种查询条件
```
//等于(=) 查询条件
public static Expression eq(String columnName, Object value);
//大于(>) 查询条件
public static Expression gt(String columnName, Object value);
//大于等于(>=) 查询条件
public static Expression ge(String columnName, Object value);
//小于(<) 查询条件
public static Expression lt(String columnName, Object value);
//小于等于(<=) 查询条件
public static Expression le(String columnName, Object value);
//in 查询条件
public static Expression in(String columnName, List