# agile-abstract-business
**Repository Path**: agile-framework/agile-abstract-business
## Basic Information
- **Project Name**: agile-abstract-business
- **Description**: 抽象业务扩展:从此告别基础增删改查、分页、参数验证
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 1
- **Created**: 2020-09-04
- **Last Updated**: 2023-01-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# agile-abstract-business : 抽象业务扩展
[](https://img.shields.io/badge/Spring--data--jpa-LATEST-green)
[](https://img.shields.io/badge/build-maven-green)
## 它有什么作用
* **抽象服务**
通过抽象服务,为实体类提供自动化增删改查、分页、参数判断能力,添加该组建后,仅需ORM实体,不需要额外代码,即可
* **旧Agile版本兼容**
在2.0.6之前的版本中,agile-mvc提供了过时的MainService类作为旧AgileService代理服务层的基类,由于此方式代码
入侵率很高,所以新版agile-mvc中利用@AgileService注解形式完全取代MainService基类。将该类移植至此模块,后续 高版本会删除。
-------
## 快速入门
开始你的第一个项目是非常容易的。
#### 步骤 1: 下载包
您可以从[最新稳定版本]下载包(https://github.com/mydeathtrial/agile-abstract-business/releases).
该包已上传至maven中央仓库,可在pom中直接声明引用
以版本agile-abstract-business-2.1.0.M5.jar为例。
#### 步骤 2: 添加maven依赖
```xml
cent
https://repo1.maven.org/maven2/
cloud.agileframework
agile-abstract-business
2.1.0.M5
```
#### 步骤 3: 开箱即用
组件生效条件有两个必要条件
1. 使用agile-jpa组件托管持久层
```properties
agile.jpa.enable=true
```
2. 工程中能够扫描到对应的ORM实体 以自定义ORM实体`MyTableEntity.class`为例
+ 实体,实体中可以声明hibernate-validate验证注解,用于增删改查验证,
```
@Setter
@Builder
@EqualsAndHashCode
@ToString
@Entity
@Table(name = "my_table")
@Remark("[系统管理]定时任务目标任务表")
public class MyTableEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Remark("主键")
private Long sysBtTaskApiId;
@Remark("定时任务标志")
private Long sysTaskId;
@Remark("目标方法主键")
private Long sysApiId;
@Remark("优先级")
private Integer order;
@Column(name = "sys_bt_task_api_id", nullable = false, length = 19)
@Id
public Long getSysBtTaskApiId() {
return sysBtTaskApiId;
}
@Basic
@Column(name = "sys_task_id", nullable = false, length = 19)
public Long getSysTaskId() {
return sysTaskId;
}
@Column(name = "sys_api_id", nullable = false, length = 19)
@Basic
public Long getSysApiId() {
return sysApiId;
}
@Column(name = "`order`", length = 3)
@Basic
public Integer getOrder() {
return order;
}
}
```
API地址模板 相关参数说明:
+ model模糊对应实体名如MyTableEntity、my-table-entity等等
+ id主键,不区分类型,组件自动转换
+ page分页页号,从1计算
+ size分页页容量
+ sorts排序字段,数组格式,`-`开头字段意为倒叙
其中查询和增加修改都接收实体对象信息参数,不限传参形式,参数转换器会根据`model`对应的实体属性与传参进行模糊转换
成功转换后,经过hibernate-validate验证,进入抽象业务操作。后续会详细说明该部分使用技巧。
```
增:POST:/api/{model}/default
主键删:DELETE:/api/{model}/{id}/default
主键批量删:DELETE:/api/{model}/default
改:PUT:/api/{model}/default
查:GET:/api/{model}/default
主键查:GET:/api/{model}/{id}/default
分页:GET:/api/{model}/{page}/{size}/default
```