部门微服务:基本dao和service代码编写
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代码编写相关推荐
- Spring Cloud 云架构下的微服务架构:部门微服务(Dept)
作者 | springML 来源 | CSDN 博客 责编 | Carol 出品 | CSDN云计算(ID:CSDNcloud) 封图| CSDN下载于视觉中国 对于 Rest 基础架构实现处理是 S ...
- 微服务框架之微软Service Fabric
常见的微服务架构用到的软件&组件: docker(成熟应用) spring boot % spring cloud(技术趋势) Service Fabric(属于后起之秀 背后是微软云的驱动) ...
- 微服务平台(Micro Service Platform : MSP)旨在提供一个集开发、测试、运维于一体的开发者专属平台,让开发者能快速构建或使用微服务,让开发更简单,让运维更高效。...
微服务平台(Micro Service Platform : MSP)旨在提供一个集开发.测试.运维于一体的开发者专属平台,让开发者能快速构建或使用微服务,让开发更简单,让运维更高效. MSP采用业界 ...
- Getaway网关访问微服务:503,Service Unavailable
Getaway网关访问微服务:503,Service Unavailable.请求路径:localhost:1000/user/test,请求响应结果如下 {"timestamp" ...
- 从分布式到微服务,深挖Service Mesh
摘要:在前一段时间,我们CSDN推出了<深度剖析Service Mesh服务网格新生代Istio>一文,大家应该深刻理解了Istio的架构和功能,该篇文章可以看作是这篇的前传,本文由易到难 ...
- 微服务架构基础之Service Mesh
ServiceMesh(服务网格) 概念在社区里头非常火,有人提出 2018 年是 ServiceMesh 年,还有人提出 ServiceMesh 是下一代的微服务架构基础. 那么到底什么是 Serv ...
- 《Spring Cloud与Docker微服务架构实战》配套代码
不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将 ...
- 骚年快答 | 为何微服务项目都使用单体代码仓库?
[答疑解惑]| 作者 / Edison Zhou 这是恰童鞋骚年的第265篇原创内容 之前在学习微软的示例eShopOnContainers时发现它使用的是单体代码仓库库,之后又发现大家在进行微服务项 ...
- java b2b 开源_springcloud微服务多用户商城系统java_代码开源_B2B电商系统_B2C电商系统...
Spring Cloud是一系列框架的有序集合.利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现.注册.配置中心.消息总线.负载均衡.断路器.数据监控等(这里只简单的列了 ...
最新文章
- 怎么连接屏幕_手机屏幕坏了也可以操作?这办法学会了再不怕碎屏
- fragment中listview触发事件setOnItemClickListener不好使
- 组件通信 Provideinject
- addListener添加事件监听器,第三个参数useCapture (Boolean) 的作用
- 关于git提交的自己的理解
- 请问.NET如何实现分布式系统?
- 洛谷P1074:靶形数独(搜索、剪枝)
- 微信小程序禁止页面上下滑动;uni-app微信小程序禁止页面上下滑动;uni-app小程序上下滑动;
- CentOS 使用iso镜像安装本地 yum 源
- python显示中文文件内容_Python实现的json文件读取及中文乱码显示问题解决方法...
- TensorBay:一款易用的像Git一样数据版本管理工具!
- NB-IOT(4)---移远NB-IOT BC26模块模组简介和实际应用方向详解
- vb 6.0 获取重定向的url_免费CloudFlare CDN真香,个人站点加速+Https证书+重定向
- 未捕获的错误:始终违反:元素类型无效:预期为字符串(对于内置组件)或类/函数,但得到了:对象
- 【转】Redis的各项功能解决了哪些问题?
- CentOS 6.6 nginx PHP 配置
- 如何实现用串口助手实时绘制16位数据波形图
- LED串联并联驱动方式分析
- 在excel中如何快速准确录入身份证号码?
- Android USB tethering相关代码