1. 程式人生 > 資料庫 >jpa學習教程(一)---原生自定義sql的寫法

jpa學習教程(一)---原生自定義sql的寫法

在spring boot中寫入jpa。程式碼如下:

@Repository
public interface LikeAppMenuViewJpaRepo extends JpaRepository<LikeAppMenuViewEntity, String> {

    @Query(value = "select distinct (u.app_name), u.url, u.params, u.lvl, u.parent, u.app_code from like_app_menu_view u where u.app_name like ?1 and u.region = ?2 and u.enable = ?3 "+

                " and EXISTS(SELECT 1 from like_app_menu_view e where app_name=u.app_name and region=u.region GROUP BY url HAVING MAX(app_code) = u.app_code )", nativeQuery = true)
    List<List<String>> queryFuncName(String name, String region, boolean enable, Pageable pageable);

    @Query(value = "select distinct (u.app_name) from like_app_menu_view u where u.app_name like ?1 and u.region = ?2 and u.enable = ?3 "+

            " and EXISTS(SELECT 1 from like_app_menu_view e where app_name=u.app_name and region=u.region GROUP BY url HAVING MAX(app_code) = u.app_code )", nativeQuery = true)
    List queryList(String name, String region, boolean enable);

  }

 

程式碼說明

1、建立一個介面,該介面主要是負責呼叫sql的方法,介面要繼承介面JpaRepository。

2、JpaRepository<LikeAppMenuViewEntity, String>。LikeAppMenuViewEntity這個對應表的實體類。String是表的實體類主鍵的資料型別。

3、 List<List<String>> queryFuncName(String name, String region, boolean enable, Pageable pageable);   介面中呼叫表的方法名字

4、sql的寫法@Query(value ="sql語句",nativeQuery = true)註解的寫法。