Spring/spring_유용한것

jpa tip

slow333 2023. 6. 6. 16:14

jpa에서 기본제공하는 crud를 사용하는 방법

extends 시에 적용한 class를 인식해서 동작함

findByFirstNameLikeAndLastNameOrEmailLike 등 과 같이 연속해서 사용가능

(알아서 sql 을 생성해줌)

@Query 를 통해 필요한 sql을 작성 가능...

@Repository
public interface PersonRepository extends CrudRepository<Person, Long> {

List<Person> findByLastNameLike(String lastName);
}

위와 같이 하면 

@Query("from Person p where s.lastName = '%포함문자%'" 와 같은 효과가 있음

 

실제 사용시

List<Person> personList = personRepository.findByLastNameLike("%e%");

e를 포함한 리스트를 출력해 줌

 

다른 예

personRepository.findByEmailLike("%gmail.com") 

==> 하면 gmail.com으로 끝나는 email 리스트를 갖는 객체

 

변수를 포함하는 쿼리문 사용(?를 사용하고 뒤에 숫자를 넣음)

@Query("from Person p where p.firstName = ?1 OR p.firstName= ?2")
List<Person> findByLastNameOrFirstName(String ln, String fn);
List<Person> personList1 = personRepository.findByLastNameOrFirstName("a", "d");

one to many 일 경우 기본적으로 fetch가 lazy로 연결되 테이블에 대해 변경할려면 애러가 남

해당 클래스를 @transactional로 변경 하던지 fetch를 eager로 변경해야함

'Spring > spring_유용한것' 카테고리의 다른 글

java logger, sleep  (0) 2023.06.08
jpa one to many 관련  (0) 2023.06.07
data base-mysql  (0) 2023.06.06
html input type  (0) 2023.06.05
jsp, thymeleaf 동시에 사용하기...  (0) 2023.06.05