Entity A ㅡ 1:1 ㅡ Entity B 인 상태에서(nallable)
jpaQueryFactory
.select(a.name, b.id, b.name)
.from(a)
.leftJoin(a.b, b).on(b.name.eq("백갤러"))
where(a.id.eq(paramId))
.fetchFirst();
이렇게 작성하면
실제 쿼리에서는 select a.name, a.b_id, b.name...
이런식으로 b의 id를 b의 컬럼에서 안가져오고 a의 컬럼에서 가져와버린단 말이지.
굳이 outer join을 한 이유가
기본적으로 a.name은 갖고오고 연관된 b가 없거나 b.name이 백갤러가 아니면 id, name 전부 null 처리하고 싶은데
b.id로 명시해놔도 실쿼리는 a.b_id가 날아가..
이거 b.id로 바꾸는 방법 없을까?
jpaQueryFactory
.select(a.name, b.id, b.name)
.from(a)
.leftJoin(a.b, b).on(b.name.eq("백갤러"))
where(a.id.eq(paramId))
.fetchFirst();
이렇게 작성하면
실제 쿼리에서는 select a.name, a.b_id, b.name...
이런식으로 b의 id를 b의 컬럼에서 안가져오고 a의 컬럼에서 가져와버린단 말이지.
굳이 outer join을 한 이유가
기본적으로 a.name은 갖고오고 연관된 b가 없거나 b.name이 백갤러가 아니면 id, name 전부 null 처리하고 싶은데
b.id로 명시해놔도 실쿼리는 a.b_id가 날아가..
이거 b.id로 바꾸는 방법 없을까?
left join(a.b, b) 말고 그냥 left join(b)해보삼 저렇게 하면 기본 조인 조건에 a.b.id = b.id 되는걸로 암
감사합니다...천재..