Spring Data JPA @Query註解的用法

一、默認配置下, 使用了@Query註解後就不會再使用方法名解析的方式了,上面這種事依然是面向對象查詢,sql語句中寫實體類名和屬性名, :後加變量,表示這是一個參數,相似sql預編譯的 ?。java

@Query("from User where userId = :userId")
User findByUserId(@Param("userId") userId);

二、當不須要表中的全字段時,可自定義dto類來接受查詢結果,這種方法要注意使用new + dto類全路徑+ (別名.field1, 別名.field2, 別名.field3), 且dto類中必須有對應參數結構的構造函數!別忘記加上無參的構造函數!sql

@Query("select new com.user.domain.UserDto(a.userName, a.gender) from User a where userId = :userId")
UserDto findByUserId(@Param("userId") userId);

三、使用註解屬性 native=true(默認false),可執行原生sql語句dom

@Query(value="select * from t_user where user_id = :userId", native=true)
User findByUserId(@Param("userId") userId);

四、修改操做加上 @Modify註解函數

@Query(value="update User set userId = :userId")
@Modify
User findByUserId(@Param("userId") userId);
相關文章
相關標籤/搜索