SpringDataJPA 相关工作笔记整理

domain层(do层)写法:

@Entity(name = "t_customer")
public class CustomerDO {
    @Column(name = "name",length = 100,nullable = false)
    private String name;

    @Column(name = "code",length = 200)
    private String code;

DAO层 : String解释--是因为JpaRepository泛型接口的对应那个查的ID

public interface ICustomerDao extends JpaRepository<CustomerDO,String>,JpaSpecificationExecutor<CustomerDO> {
}

Service接口层:

public interface ICustomerService {
    /*
    相关方法
    */
    void save();
}

ServiceImpl业务实现层:BaseServiceImpl :相关基础的业务

@Service
public class CustomerServiceImpl extends BaseServiceImpl implements ICustomerService{
@Override
    public List<CustomerDTO> listCustomer(){
       /*sort: 排序 ,按createTime*/
        Sort sort = new Sort(new Sort.Order(Sort.Direction.DESC,"createTime"));
        List<CustomerDO> customerDOS = customerDao.findAll((root, query, cb) -> {
            /*get("deleted"):是对应 DO 类里的字段*/
            Path<Boolean> deletePath = root.get("deleted");
            return cb.and(cb.equal(deletePath,false));
        },sort);
        return customerDOS;
    } }


Controller层:注意:@Api是 使用了Swagger

@Api(value = "客户管理",description = "客户维护")
@RestController
@RequestMapping("customer")
public class CustomerController {

    @Autowired
    ICustomerService customerService;

    @ApiOperation(value = "保存一个顾客")
    @PostMapping("saveCustomer")
    public WebResult saveCustomer(@RequestBody CustomerDTO customerDTO){
        customerService.saveCustomer(customerDTO);
        return WebUtils.success();
    }
}
分页的运用:PageRequest第一个参数 :显示第几页;第二个参数:每页显示多少条数据
 public List<NoticeDTO> listLastByCount(int count) {
         UserContextDTO userContextDTO=getUserContext();
         PageRequest pageRequests=new PageRequest(0,count,Sort.Direction.DESC,"publishDate");
         Page<NoticeDO> noticeDOS=noticeDao.findAll((root, criteriaQuery, criteriaBuilder) -> {
            Path<Boolean> deletePath=root.get("deleted");
             Path<String> tenantIdPath=root.get("tenantId");
             return criteriaBuilder.and(
                     criteriaBuilder.equal(deletePath,false),criteriaBuilder.equal(tenantIdPath,userContextDTO.getTenantId())
             );},pageRequests);
            List<NoticeDO> noticeDOS1 = noticeDOS.getContent();
            List<NoticeDTO> noticeDTOS = noticeMapper.from(noticeDOS1);
        return noticeDTOS;
    }
事务处理:应用场景:重新保存一条信息时需要删除原来的那条,于是就需要事务来控制,以防止删除时突然断电 @Transactional(rollbackFor = Exception.class)




猜你喜欢

转载自blog.csdn.net/zxcvb12zxcvb12/article/details/80734139
今日推荐