Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Querydsl 4 StringExpression of a field inside a SimplePath

I have an Order entity which contains a OrderCustomer field and OrderCustomer entity has an Customer field.

@Document
public class Order {
    private OrderCustomer orderCustomer;
}

public class OrderCustomer {
    private Customer customer;
}

public class Customer {
    private String referenceNumber;
}

And the query class generated by org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor looks like:

public QOrder {
    public final QOrderCustomer orderCustomer;
}

public QOrderCustomer {
    public final SimplePath<Customer> = createSimple("customer", Customer.class);
}

In this case, how can I create a predicate to check Customer.referenceNumber contains any string input from client?

For example: QOrder.order.orderCustomer.customer.referenceNumber.contains("anystring")

Or maybe the code is not generated properly? Should generate QCustomer?

My dependency versions: querydsl 4.1.4 + spring-data-mongodb 1.9.5 (managed by spring-data-releasetrain:Hopper-SR5)

like image 256
user1831877 Avatar asked Dec 18 '25 13:12

user1831877


1 Answers

To generate QCustomer, I have to put @QueryEmbeddable on Customer type. Not sure this is a correct solution.

like image 60
user1831877 Avatar answered Dec 21 '25 03:12

user1831877