public List<TodoListItem> findByText(Member member, String text) {
return em.createQuery("select t from TodoListItem t where t.member =: member and t.title like :text")
.setParameter("member", member)
.setParameter("text", "%"+text+"%")
.getResultList();
}
'김'으로 시작하는 학생 조회
SELECT * FROM Student WHERE name LIKE '김%'
'김'이 들어가는 시작하는 학생 조회
SELECT * FROM Student WHERE name LIKE '%김%'
'김'으로 끝나는 학생 조회
SELECT * FROM Student WHERE name LIKE '%김'
보통 검색기능을 구현할때 %내용%를 사용해야하는데
createQuery안에 옵션을넣어보려 해도 오류가난다.
createQuery안에 넣으면 안되고
.setParameter("text", "%"+text+"%")
parameter안에 넣어야 정상 작동한다.
https://www.inflearn.com/questions/268079
createquery에서 like 검색하려면 - 인프런 | 질문 & 답변
예를 들어 '김민수' '김영희' 이 두사람이 db에 저장되어 있을 때, '김'이라는 키워드를 입력받으면 두 사람이 나오는 like 검색 기능을 만들어 보고 싶은데요. keyword는 :keyword 와 같은 식으로 받아
www.inflearn.com