美文网首页
EasyCode Sring Jpa + QueryDsl模版

EasyCode Sring Jpa + QueryDsl模版

作者: 田文健 | 来源:发表于2020-03-27 16:51 被阅读0次

    非常感谢EasyCode 的作者提供了这么好用的工具。设置EasyCode 的模版方式 settings=》other settings

    实体类

    ##引入宏定义
    $!define
    
    ##使用宏定义设置回调(保存位置与文件后缀)
    #save("/entity", ".java")
    
    ##使用宏定义设置包后缀
    #setPackageSuffix("entity")
    
    ##使用全局变量实现默认包导入
    $!autoImport
    import java.io.Serializable;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Table;
    
    ##使用宏定义实现类注释信息
    #tableComment("实体类")
    @Data
    @Entity
    @Table(name = "$!{tableInfo.obj.name}")
    public class $!{tableInfo.name} implements Serializable {
        private static final long serialVersionUID = $!tool.serial();
    #foreach($column in $tableInfo.fullColumn)
        #if(${column.comment})/**
        * ${column.comment}
        */#end
    
        @Column(name = "$!{column.obj.name}")
        private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
    #end
    }
    

    Repo

    ##定义初始变量
    #set($tableName = $tool.append($tableInfo.name, "Repo"))
    ##设置回调
    $!callback.setFileName($tool.append($tableName, ".java"))
    $!callback.setSavePath($tool.append($tableInfo.savePath, "/repo"))
    
    ##拿到主键
    #if(!$tableInfo.pkColumn.isEmpty())
        #set($pk = $tableInfo.pkColumn.get(0))
    #end
    
    #if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}dao;
    
    import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
    import java.util.List;
    import org.springframework.data.jpa.repository.JpaRepository;
    import org.springframework.data.querydsl.QuerydslPredicateExecutor;
    import org.springframework.stereotype.Repository;
    
    /**
     * $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层
     *
     * @author $!author
     * @since $!time.currTime()
     */
    @Repository
    public interface $!{tableName} 
    extends JpaRepository<$!{tableInfo.name}, $!{pk.shortType}>,
     QuerydslPredicateExecutor<$!{tableInfo.name}> {
    
    }
    

    Service

    ##定义初始变量
    #set($tableName = $tool.append($tableInfo.name, "Service"))
    ##设置回调
    $!callback.setFileName($tool.append($tableName, ".java"))
    $!callback.setSavePath($tool.append($tableInfo.savePath, "/service"))
    
    ##拿到主键
    #if(!$tableInfo.pkColumn.isEmpty())
        #set($pk = $tableInfo.pkColumn.get(0))
    #end
    
    #if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service;
    
    import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
    import java.util.List;
    import org.springframework.data.domain.Page;
    import org.springframework.data.domain.Pageable;
    
    /**
     * $!{tableInfo.comment}($!{tableInfo.name})表服务接口
     *
     * @author $!author
     * @since $!time.currTime()
     */
    public interface $!{tableName} {
    
        /**
         * 通过ID查询单条数据
         *
         * @param $!pk.name 主键
         * @return 实例对象
         */
        $!{tableInfo.name} queryById($!pk.shortType $!pk.name);
    
        /**
         * 查询多条数据
         *
         * @param offset 查询起始位置
         * @param limit 查询条数
         * @return 对象列表
         */
        Page<$!{tableInfo.name}> page(Pageable page, tableInfo.name params );
    
        /**
         * 保存数据
         *
         * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
         * @return 实例对象
         */
        $!{tableInfo.name} save($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));
    
        /**
         * 通过主键删除数据
         *
         * @param $!pk.name 主键
         * @return 是否成功
         */
        void deleteById($!pk.shortType $!pk.name);
    
    }
    

    ServiceImpl

    ##定义初始变量
    #set($tableName = $tool.append($tableInfo.name, "ServiceImpl"))
    ##设置回调
    $!callback.setFileName($tool.append($tableName, ".java"))
    $!callback.setSavePath($tool.append($tableInfo.savePath, "/service/impl"))
    
    ##拿到主键
    #if(!$tableInfo.pkColumn.isEmpty())
        #set($pk = $tableInfo.pkColumn.get(0))
    #end
    
    #if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service.impl;
    
    import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
    import $!{tableInfo.savePackageName}.repo.$!{tableInfo.name}Repo;
    import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
    import org.springframework.stereotype.Service;
    
    import javax.annotation.Resource;
    import java.util.List;
    import org.springframework.data.domain.Page;
    import org.springframework.data.domain.Pageable;
    
    /**
     * $!{tableInfo.comment}($!{tableInfo.name})表服务实现类
     *
     * @author $!author
     * @since $!time.currTime()
     */
    @Service
    public class $!{tableName} implements $!{tableInfo.name}Service {
        @Resource
        private $!{tableInfo.name}Repo $!tool.firstLowerCase($!{tableInfo.name})Repo;
    
        /**
         * 通过ID查询单条数据
         *
         * @param id 主键
         * @return 实例对象
         */
        @Override
        public $!{tableInfo.name} queryById($!pk.shortType id) {
            return this.$!{tool.firstLowerCase($!{tableInfo.name})}Repo.findById($!pk.name).orElse(null);
        }
    
        /**
         * 查询多条数据
         *
         * @param page 分页
         * @param params 参数
         * @return 分页对象
         */
        @Override
        public Page<$!{tableInfo.name}> page(Pageable page, $!{tableInfo.name} params) {
            return this.$!{tool.firstLowerCase($!{tableInfo.name})}Repo.findAll(page);
        }
    
        /**
         * 新增数据
         *
         * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
         * @return 实例对象
         */
        @Override
        public $!{tableInfo.name} save($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) {
            this.$!{tool.firstLowerCase($!{tableInfo.name})}Repo.save($!tool.firstLowerCase($!{tableInfo.name}));
            return $!tool.firstLowerCase($!{tableInfo.name});
        }
    
        /**
         * 通过主键删除数据
         *
         * @param id 主键
         */
        @Override
        public void deleteById($!pk.shortType $!pk.name) {
             this.$!{tool.firstLowerCase($!{tableInfo.name})}Repo.deleteById($!pk.name);
        }
    }
    

    Controller

    ##定义初始变量
    #set($tableName = $tool.append($tableInfo.name, "Controller"))
    ##设置回调
    $!callback.setFileName($tool.append($tableName, ".java"))
    $!callback.setSavePath($tool.append($tableInfo.savePath, "/controller"))
    ##拿到主键
    #if(!$tableInfo.pkColumn.isEmpty())
        #set($pk = $tableInfo.pkColumn.get(0))
    #end
    
    #if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}controller;
    
    import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
    import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
    import org.springframework.web.bind.annotation.*;
    import com.bz.heimdallr.common.result.R;
    
    import javax.annotation.Resource;
    
    /**
     * $!{tableInfo.comment}($!{tableInfo.name})表控制层
     *
     * @author $!author
     * @since $!time.currTime()
     */
    @RestController
    public class $!{tableName} {
        /**
         * 服务对象
         */
        @Resource
        private $!{tableInfo.name}Service $!tool.firstLowerCase($tableInfo.name)Service;
    
        /**
         * 通过主键查询单条数据
         *
         * @param id 主键
         * @return 单条数据
         */
        @GetMapping("$!tool.firstLowerCase($tableInfo.name)/getOne")
        public R getOne(String id) {
            return R.success(this.$!{tool.firstLowerCase($tableInfo.name)}Service.queryById(id));
        }
    
         /**
         * 分页查询
         *
         * @param params 参数
         * @param pv 分页参数
         * @return 分页数据
         */
        @GetMapping("$!tool.firstLowerCase($tableInfo.name)/page")
        public R page(LeaseOrder params, PageVO pv) {
            return R.success($!tool.firstLowerCase($tableInfo.name)Service.page(params, pv.toPageable()));
        }
    }
    

    相关文章

      网友评论

          本文标题:EasyCode Sring Jpa + QueryDsl模版

          本文链接:https://www.haomeiwen.com/subject/ukbluhtx.html