인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

임병윤님의 프로필 이미지
임병윤

작성한 질문수

실전! 스프링 데이터 JPA

@Query, 리포지토리 메소드에 쿼리 정의하기

@Query에서 객체 파라미터

해결된 질문

작성

·

359

0

만약에 save 메소드처럼 객체를 통째로 저장하려고 한다면,

@Query("select m from Member m where m=:m")

void save(@Param("m") Member m);

이렇게 하면 되나요?

그리고 Member 내부 속성에서 만약 team 객체를 통해 조회하는게 가능할까요? 가령,,

@Query("select m from Member m where m.team.teamName=:teamName")

void findByTeamName(@Param("teamName") String teamName);

감사합니다.

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 임병윤님

스프링 데이터 JPA가 save 메서드를 제공하기 때문에 단순히 이미 만들어져 있는 save를 다음과 같이 호출하면 됩니다.

repository.save(member);

두번째 질문하신 부분은 가능하기는 하지만 절대 권장하지 않습니다!

이렇게 하면 묵시적 조인이라는 것이 발생하는데요. 유지보수가 매우 어려워집니다.

묵시적 조인에 대한 자세한 내용은 JPA 기본편의 경로 표현식을 참고해주세요.

p.s: 스프링 데이터 JPA는 JPA 자체를 먼저 잘 이해하고 사용하는 것을 권장드립니다. 다음 로드맵을 참고해주세요.

https://www.inflearn.com/roadmaps/149

감사합니다.

임병윤님의 프로필 이미지
임병윤

작성한 질문수

질문하기