2014-10-30 95 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 2014-10-31 01:52:30