2014-10-30 3 views
1

QueryDSL JPA Tutorial에서 querydsl에 의해 생성 된 기본 인스턴스 변수와 사용자 정의 변수 사이에 차이점을 찾을 수 없습니다. 기업 고객의 경우 querydsl 인스턴스 변수

@Entity 
public class Customer { 
    private String firstName; 
    private String lastName; 

    public String getFirstName(){ 
     return firstName; 
    } 

    public String getLastName(){ 
     return lastName; 
    } 

    public void setFirstName(String fn){ 
     firstName = fn; 
    } 

    public void setLastName(String ln)[ 
     lastName = ln; 
    } 
} 

다음과 같이 기본 인스턴스 변수 및 사용자 정의를 사용의 차이점은 무엇으로 정의?

QCustomer customer = QCustomer.customer; 

VS

QCustomer customer = new QCustomer("myCustomer"); 

무엇 두번째와 같이 사용자 정의 변수에 대한 가능한 사용 사례가 될 수 있을까?

답변

0

변수 이름은 직렬화에서 사용됩니다. 쿼리에서 동일한 유형의 인스턴스를 여러 개 참조해야하는 경우 여러 변수를 사용해야합니다. 여기

는 예를

QCustomer customer = QCustomer.customer; 
QCustomer customer2 = new QCustomer("customer2"); 
List<Customer> customers = query.from(customer) 
    .where(new JPASubQuery() 
     .from(customer2) 
     .where(customer2.id.ne(customer.id), 
       customer2.lastName.eq(customer.lastName), 
       customer2.firstName.eq(customer.firstName)) 
     .exists()) 
    .list(customer); 
+0

입니다 내가 모든 쿼리에 기본 변수를 사용하는 경우 QCustomer 하나의 인스턴스 만이 사용할 수있는 곳이 됐나요? – TheKojuEffect