2014-10-30 93 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