部门微服务:基本dao和service代码编写
生活随笔
收集整理的這篇文章主要介紹了
部门微服务:基本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代码编写的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端框架:发送请求获取数据的执行逻辑
- 下一篇: RBAC模型:设计思路