enterprise_id 열을 통해 자체 참조가있는이 테이블 service_providers가 있다고 가정합니다.내부 조인 querydsl with where 문
id enterprise_id
102 57
103 57
public class ServiceProvider {
....
@ManyToOne
@JoinColumn(name = "enterprise_id")
private ServiceProvider enterprise;
}
나는 enterprise_id를 갖는 모든 servive_providers를 갖기 위해 노력하고 있습니다. 이것은 매우 간단합니다 :
select sp1.id
from service_providers sp1
inner join service_providers sp2 on (sp1.enterprise_id=sp2.id)
where sp2.id=57;
그러나 쿼리 - dsl을 통해 복제하려고하면 어떻게 든 문제가됩니다.
select sp1.id
from service_providers sp0
cross join service_providers sp1
inner join service_providers sp2 on (sp1.enterprise_id=sp2.id)
where sp0.id=? and sp2.id=?
이 잘못되고 게다가, 약간의 혼란이 최대 절전 모드가 생성하는 것입니다
QServiceProvider serviceProvider2 = new QServiceProvider("serviceProvider2");
QServiceProvider serviceProvider3 = new QServiceProvider("serviceProvider3");
query.from(serviceProvider2)
.innerJoin(serviceProvider3)
.on(serviceProvider2.enterprise.id.eq(serviceProvider3.id))
.where(serviceProvider3.id.eq(enterpriseId))
.list(serviceProvider2.id);
:처럼 여기
입니다 어떤 것은 보인다.
아무도 내가 여기서 뭘 잘못하고 있다고 말할 수 있습니까?
그 ** 수 ** 당신이 할 수 JoinColumn thatsa, 내가 액세스 할 수있는 곳 뭔가 enterprise_id 경우 유효 만나다. – Eugene