2025๋ 5์ 7์ผ
SELECT u FROM User u
โ User
๋ ์ค์ ํ
์ด๋ธ์ด ์๋๋ผ ์ํฐํฐ ํด๋์ค ์ด๋ฆ@Repository
public interface UserRepository extends JpaRepository<User, String> {
/**
* ์ญํ (role)์ ํด๋นํ๋ ์ฌ์ฉ์ ๋ชฉ๋ก ์กฐํ
*/
@Query("SELECT u FROM User AS u WHERE u.role=?1")
List<User> selectByRole(String role);
/**
* ์ญํ ๊ณผ ๋น๋ฐ๋ฒํธ๊ฐ ๋ชจ๋ ์ผ์นํ๋ ์ฌ์ฉ์ ์กฐํ
* โ ๏ธ ๋ณด์์ ๋น๋ฐ๋ฒํธ๋ ์ผ๋ฐ ํ
์คํธ๋ก ๋น๊ตํ์ง ์๋๋ก ์ฃผ์!
*/
@Query("SELECT u FROM User AS u WHERE u.role=?1 and u.password=?2")
List<User> selectByRoleAndPassword(String role, String password);
/**
* ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ๋ ์ฌ์ฉ์ ์กฐํ
* โ ๏ธ ์ค์ ์๋น์ค์์๋ ์ฌ์ฉํ์ง ์๋๋ก ์ฃผ์
*/
@Query("SELECT u FROM User AS u WHERE u.password=:password")
List<User> selectByPassword(@Param("password") String pw);
/**
* ์ฌ์ฉ์ ์ด๋ฆ์ ํน์ ํค์๋๊ฐ ํฌํจ๋ ์ฌ์ฉ์ ๋ชฉ๋ก ์กฐํ
* โ ๏ธ LIKE ์ฌ์ฉ ์ ์์ผ๋์นด๋ ์ฒ๋ฆฌ ์ฃผ์
*/
@Query("SELECT u FROM User u WHERE u.username LIKE CONCAT('%',:username,'%')")
List<User> selectAllLikeUsername(@Param("username") String username);
}
@Test
public void t2() throws Exception {
// ์ฌ์ฉ์ ์ด๋ฆ์ '1'์ด ํฌํจ๋ ์ฌ์ฉ์ ๊ฒ์
List<User> list = userRepository.selectAllLikeUsername("1");
list.stream().forEach(System.out::println);
}
User(username=user1, role=ROLE_USER)
User(username=admin1, role=ROLE_ADMIN)
@Query
๋ฅผ ์ฌ์ฉํด ์ปค์คํ
JPQL ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ์ ์์?1
, ?2
: ์์น ๊ธฐ๋ฐ ํ๋ผ๋ฏธํฐ / :param
: ๋ค์๋ ํ๋ผ๋ฏธํฐLIKE
, CONCAT
๋ฑ์ ํตํด ๋ถ๋ถ ๊ฒ์ ๊ตฌํ ๊ฐ๋ฅ