2 Star 0 Fork 1

huifer / entity-plugin

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
readme.md

Entity plugin

实体增强插件, 基于SpringDataJpa开发,通过一个注解的形式来得到单个对象的CRUD操作.

Feature

  • 支持JPA增删改查操作,无需编写额外的Controller(单表)
  • 支持缓存层
  • 支持自定义数据转换
  • 支持自定义数据验证

Use

引入依赖

    <dependency>
      <artifactId>entity-plugin-core</artifactId>
      <groupId>com.github.huifer</groupId>
      <version>1.0.0-Releases</version>
    </dependency>

为JPA实体对象添加EntityPlugin注解

@EntityPlugin(name = "/uri",
    convertClass = OauthUserEntityConvertInSpring.class,
    validateApiClass = OauthUserEntityValidate.class,
    cacheKey = "oauth_client"
)
  • name: url路由地址.
  • convertClass: 负责进行转换的类,需要实现EntityConvert接口, 可以不填写,如果不填写请求参数(新增,修改)和返回对象将采用数据库对象,如果填写将根据EntityConvert实现类的泛型进行处理.
  • validateApiClass: 负责进行验证的类,需要实现ValidateApi接口,可以不填写,将不做任何数据验证.
  • cacheKey: 缓存名称.

业务层使用

  • 在业务使用是需要注入EntityUseService依赖,具体代码如下:
  @Autowired
  private EntityUseService entityUseService;
  • 在EntityUseService接口中定义了如下四个方法:
public interface EntityUseService {

  <T> T findById(String id, Class<T> clazz);

  <T> T save(Object insertParam, Class<T> clazz);

  <T> T update(Object updateParam, Class<T> clazz);

  Boolean deleteById(String id, Class<?> clazz);

}
  • 在上述四个方法中是具备redis缓存操作,如果不想使用缓存可以将注解EntityPlugin的cacheKey属性设置为空字符串("").

自动Controller

  • 在JPA实体对象上添加EntityPlugin注解后会自动开启Controller,注意在自动Controller中并未携带Redis相关操作,接口路由地址如下:
  • 根据id查询
GET /{@EntityPlugin#Name}/{id}

路由说明: {@EntityPlugin#Name} 表示注解EntityPlugin的name数据值,{id}表示数据id

  • 新增
POST /{@EntityPlugin#Name}
Content-Type: application/json

{}

路由说明: {@EntityPlugin#Name} 表示注解EntityPlugin的name数据值,参数body的数据需要根据EntityConvert接口中标记的新增泛型进行填写

  • 修改
PUT /{@EntityPlugin#Name}
Content-Type: application/json

{}

路由说明: {@EntityPlugin#Name} 表示注解EntityPlugin的name数据值,参数body的数据需要根据EntityConvert接口中标记的新增泛型进行填写

  • 根据id删除
DELETE /{@EntityPlugin#Name}/{id}

路由说明: {@EntityPlugin#Name} 表示注解EntityPlugin的name数据值,{id}表示数据id

Comments ( 0 )

Sign in for post a comment

About

实体对象配合JPA减少单表增删改查代码编写 spread retract
Cancel

Releases

No release

Contributors

All

Activities

load more
can not load any more
1
https://gitee.com/pychfarm_admin/entity-plugin.git
git@gitee.com:pychfarm_admin/entity-plugin.git
pychfarm_admin
entity-plugin
entity-plugin
main

Search