querydsl实例变量

时间:2014-10-30 15:57:33

标签: jpa querydsl

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");

第二个自定义变量的可能用例可能是什么?

1 个答案:

答案 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);