package com.learn.domain.company;import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;/*** (Department)实体类*/
@Entity
@Table(name = "co_department")
//@Data
//@AllArgsConstructor
//@NoArgsConstructor
public class Department implements Serializable {private static final long serialVersionUID = -9084332495284489553L;//ID@Idprivate String id;/*** 父级ID*/private String pid;/*** 企业ID*/private String companyId;/*** 部门名称*/private String name;/*** 部门编码,同级部门不可重复*/private String code;/*** 负责人ID*/private String managerId;/***  负责人名称*/private String manager;/*** 介绍*/private String introduce;/*** 创建时间*/private Date createTime;public static long getSerialVersionUID() {return serialVersionUID;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getPid() {return pid;}public void setPid(String pid) {this.pid = pid;}public String getCompanyId() {return companyId;}public void setCompanyId(String companyId) {this.companyId = companyId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getManagerId() {return managerId;}public void setManagerId(String managerId) {this.managerId = managerId;}public String getManager() {return manager;}public void setManager(String manager) {this.manager = manager;}public String getIntroduce() {return introduce;}public void setIntroduce(String introduce) {this.introduce = introduce;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}@Overridepublic String toString() {return "Department{" +"id='" + id + '\'' +", pid='" + pid + '\'' +", companyId='" + companyId + '\'' +", name='" + name + '\'' +", code='" + code + '\'' +", managerId='" + managerId + '\'' +", manager='" + manager + '\'' +", introduce='" + introduce + '\'' +", createTime=" + createTime +'}';}
}
package com.learn.company.dao;import com.learn.domain.company.Department;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;/*** 部门dao接口*/
public interface DepartmentDao extends JpaRepository<Department,String> ,JpaSpecificationExecutor<Department> {
}
package com.learn.company.service;import com.learn.common.service.BaseService;
import com.learn.common.utils.IdWorker;
import com.learn.company.dao.DepartmentDao;
import com.learn.domain.company.Department;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.util.List;@Service
public class DepartmentService extends BaseService {@Autowiredprivate DepartmentDao departmentDao;@Autowiredprivate IdWorker idWorker;/*** 1.保存部门*/public void save(Department department) {//设置主键的值String id = idWorker.nextId()+"";department.setId(id);//调用dao保存部门departmentDao.save(department);}/*** 2.更新部门*/public void update(Department department) {//1.根据id查询部门Department dept = departmentDao.findById(department.getId()).get();//2.设置部门属性dept.setCode(department.getCode());dept.setIntroduce(department.getIntroduce());dept.setName(department.getName());//3.更新部门departmentDao.save(dept);}/*** 3.根据id查询部门*/public Department findById(String id) {return departmentDao.findById(id).get();}/*** 4.查询全部部门列表*/public List<Department> findAll(String companyId) {/*** 用户构造查询条件*      1.只查询companyId*      2.很多的地方都需要根据companyId查询*      3.很多的对象中都具有companyId**/
//        Specification<Department> spec = new Specification<Department>() {
//            /**
//             * 用户构造查询条件
//             *      root   :包含了所有的对象数据
//             *      cq     :一般不用
//             *      cb     :构造查询条件
//             */
//            public Predicate toPredicate(Root<Department> root, CriteriaQuery<?> cq, CriteriaBuilder cb) {
//                //根据企业id查询
//                return cb.equal(root.get("companyId").as(String.class),companyId);
//            }
//        };return departmentDao.findAll(getSpec(companyId));}/*** 5.根据id删除部门*/public void deleteById(String id) {departmentDao.deleteById(id);}
}
package com.learn.common.service;import org.springframework.data.jpa.domain.Specification;import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;public class BaseService<T> {protected Specification<T> getSpec(String companyId) {Specification<T> spect = new Specification() {@Overridepublic Predicate toPredicate(Root root, CriteriaQuery criteriaQuery, CriteriaBuilder cb) {//根据企业id查询return cb.equal(root.get("companyId").as(String.class),companyId);}};return spect;}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>ihrm_parent</artifactId><groupId>com.ihrm</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>ihrm_common</artifactId><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency></dependencies>
</project>

部门微服务:基本dao和service代码编写相关推荐

  1. Spring Cloud 云架构下的微服务架构:部门微服务(Dept)

    作者 | springML 来源 | CSDN 博客 责编 | Carol 出品 | CSDN云计算(ID:CSDNcloud) 封图| CSDN下载于视觉中国 对于 Rest 基础架构实现处理是 S ...

  2. 微服务框架之微软Service Fabric

    常见的微服务架构用到的软件&组件: docker(成熟应用) spring boot % spring cloud(技术趋势) Service Fabric(属于后起之秀 背后是微软云的驱动) ...

  3. 微服务平台(Micro Service Platform : MSP)旨在提供一个集开发、测试、运维于一体的开发者专属平台,让开发者能快速构建或使用微服务,让开发更简单,让运维更高效。...

    微服务平台(Micro Service Platform : MSP)旨在提供一个集开发.测试.运维于一体的开发者专属平台,让开发者能快速构建或使用微服务,让开发更简单,让运维更高效. MSP采用业界 ...

  4. Getaway网关访问微服务:503,Service Unavailable

    Getaway网关访问微服务:503,Service Unavailable.请求路径:localhost:1000/user/test,请求响应结果如下 {"timestamp" ...

  5. 从分布式到微服务,深挖Service Mesh

    摘要:在前一段时间,我们CSDN推出了<深度剖析Service Mesh服务网格新生代Istio>一文,大家应该深刻理解了Istio的架构和功能,该篇文章可以看作是这篇的前传,本文由易到难 ...

  6. 微服务架构基础之Service Mesh

    ServiceMesh(服务网格) 概念在社区里头非常火,有人提出 2018 年是 ServiceMesh 年,还有人提出 ServiceMesh 是下一代的微服务架构基础. 那么到底什么是 Serv ...

  7. 《Spring Cloud与Docker微服务架构实战》配套代码

    不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将 ...

  8. 骚年快答 | 为何微服务项目都使用单体代码仓库?

    [答疑解惑]| 作者 / Edison Zhou 这是恰童鞋骚年的第265篇原创内容 之前在学习微软的示例eShopOnContainers时发现它使用的是单体代码仓库库,之后又发现大家在进行微服务项 ...

  9. java b2b 开源_springcloud微服务多用户商城系统java_代码开源_B2B电商系统_B2C电商系统...

    Spring Cloud是一系列框架的有序集合.利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现.注册.配置中心.消息总线.负载均衡.断路器.数据监控等(这里只简单的列了 ...

最新文章

  1. 怎么连接屏幕_手机屏幕坏了也可以操作?这办法学会了再不怕碎屏
  2. fragment中listview触发事件setOnItemClickListener不好使
  3. 组件通信 Provideinject
  4. addListener添加事件监听器,第三个参数useCapture (Boolean) 的作用
  5. 关于git提交的自己的理解
  6. 请问.NET如何实现分布式系统?
  7. 洛谷P1074:靶形数独(搜索、剪枝)
  8. 微信小程序禁止页面上下滑动;uni-app微信小程序禁止页面上下滑动;uni-app小程序上下滑动;
  9. CentOS 使用iso镜像安装本地 yum 源
  10. python显示中文文件内容_Python实现的json文件读取及中文乱码显示问题解决方法...
  11. TensorBay:一款易用的像Git一样数据版本管理工具!
  12. NB-IOT(4)---移远NB-IOT BC26模块模组简介和实际应用方向详解
  13. vb 6.0 获取重定向的url_免费CloudFlare CDN真香,个人站点加速+Https证书+重定向
  14. 未捕获的错误:始终违反:元素类型无效:预期为字符串(对于内置组件)或类/函数,但得到了:对象
  15. 【转】Redis的各项功能解决了哪些问题?
  16. CentOS 6.6 nginx PHP 配置
  17. 如何实现用串口助手实时绘制16位数据波形图
  18. LED串联并联驱动方式分析
  19. 在excel中如何快速准确录入身份证号码?
  20. Android USB tethering相关代码

热门文章

  1. 新建Eclipse的web工程目录结构和MyEclipse相似的设置
  2. Win10 Bash/WSL调试Linux环境下的.NET Core应用程序
  3. Docker笔记——jdk镜像制作
  4. 阅读《构建之法》1-5章
  5. 堆排序 海量数据求前N大的值
  6. mongodb按照时间分组统计
  7. 复旦高等代数 II(17级)每周一题
  8. IDC:全球经济危机为云计算带来曙光
  9. 通过git和Xcode将代码上传到GitHub
  10. android编程中setLayoutParams方法设置