SpringData JPA @Query動態SQL語句,且分頁


一,帶參查詢(1、根據參數位置2、根據Param注解)

/**
     * 查詢根據參數位置
     * @param userName
     * @return
     */
    @Query(value = "select * from sys_user  where userName = ?1",nativeQuery = true)
    SysUser findSysUserByUserName(String userName);
 
    /**
     * 查詢根據Param注解
     * @param userName
     * @return
     */
    @Query(value = "select u from SysUser u where u.userName = :userName")
    SysUser findSysUserByUserNameTwo(@Param("userName") String userName);
  • @Query有nativeQuery=true,表示可執行的原生sql,原生sql指可以直接復制sql語句給參數賦值就能運行
  • @Query無nativeQuery=true, 表示不是原生sql,查詢語句中的表名則是對應的項目中實體類的類名
  • 如圖
  •  

    動態sql語句如下

  • @Query(value = "select * from project_demand where project_id=?1 and if(?2!='',demand_id in (select demand_id from demand_user where user_id=?2),1=1)",nativeQuery = true)

  • 紅色部分,就是生成動態SQL的方法,利用MYSQL的if函數和我們傳遞的參數去進行判斷,然后獲取SQL語句。

如下截圖是既有動態參數,又有固定參數,還有分頁功能的部分截圖,有問題可以留言討論

  •  

     

     

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM