从QueryDSL JPA Tutorial,我找不到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 :(得分:1)
变量名在序列化中用作此类。如果需要在查询中引用同一类型的多个实例,则需要使用多个变量。
这是一个例子
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);