• springcloud 复杂sql查询


    springcloud有自动生成sql的功能,不需要手写简单的sql语句实现,复杂的sql查询需要通过手写sql语句实现查询功能;

    eg:在controller层

    @RestController
    @RequestMapping("api")
    public class MemberController {

    @RequestMapping(value = "v2/member/member/messageList") // 用户消息首页列表,未使用
    public Object messageList(
    @RequestParam(required = false, defaultValue = PageConstants.DEFAULT_PAGE_NUMBER) Integer page,

    //required = false  page可以不赋值,PageConstants.DEFAULT_PAGE_NUMBER为常量
    @RequestParam(required = false, defaultValue = PageConstants.DEFAULT_PAGE_SIZE) Integer size,
    HttpServletRequest httpServletRequest) {

    // 通知公告
    List<AlumniNotice> alumniNoticeList = new ArrayList<>();

    alumniNoticeList = alumniNoticeService.getListByAlumniAssociationId(alumniId, page, size);
    map.put("alumniNoticeList", alumniNoticeList);
    return APIResult.createSuccess(map);
    }

    在serviceImpl层:

    @Service
    public class AlumniNoticeServiceImpl {
    @Autowired
    private AlumniNoticeRepository alumniNoticeRepository;

    public List<AlumniNotice> getListByAlumniAssociationId(String alumniAssociationId, Integer page, Integer size) {
    // 引入过滤掉公告通知的常量
    Integer excludedStatus = MemberMessageGlobalUtils.MEMBER_MESSAGE_DELETED;
    // 引入对公告通知进行排序的常量
    Integer sortStatus = MemberMessageGlobalUtils.MEMBER_MESSAGE_DECIDED;
    /**
    * 通过alumniAssociationId,expectedStatus、sortStatus,page,size查询公告通知的方法
    */
    return alumniNoticeRepository.findByAlumniAssociationId(alumniAssociationId, excludedStatus, sortStatus, page,
    size);
    }
    }

    在repository层:

    @Repository
    public interface AlumniNoticeRepository extends JpaRepository<AlumniNotice, Integer> {
    AlumniNotice findById(String id);

    /**
    * 通过sql语句 查询符合alumni_association_id、status条件的公告通知集合,并对集合过滤、按时间进行排序、分页显示

    *?number   为sql映射到方法中的第number个元素,分页显示时,注意size后无“;”
    */

    @Query(value = "SELECT * FROM alumni_notice an WHERE (an.alumni_association_id) = (?1) AND "
    + "(an.status) &(?2) !=(?2) ORDER BY ((an.status) &(?3))DESC,create_time DESC limit ?4 , ?5", nativeQuery = true)
    List<AlumniNotice> findByAlumniAssociationId(String alumniAssociationId, Integer excludedStatus, Integer sortStatus,
    Integer page, Integer size);
    }

    通过以上代码完成springcloud复杂sql语句的调用。

  • 相关阅读:
    POJ1001 Exponentiation
    centos 在安装YouCompleteMe时提示 Fatal : pyconfig.h No such file or directory
    VMware12上安装CentOS无法上网问题
    mysql报错:/usr/sbin/mysqld:unknown variable 'default-character-set=utf8'
    centos7 python3.5安装mysqlclient1.3.9
    DirectDraw创建Windows窗口
    二进制移位溢出
    格式化时间 与 时间戳的转换
    ADO 读取 ACCESS
    Windows DOS 窗口设置字体颜色
  • 原文地址:https://www.cnblogs.com/qqzhulu/p/10146152.html
Copyright © 2020-2023  润新知