Spring mvc Spring数据REST、MVC QueryDSL绑定|模拟默认绑定

Spring mvc Spring数据REST、MVC QueryDSL绑定|模拟默认绑定,spring-mvc,spring-data-rest,Spring Mvc,Spring Data Rest,我有一个启用了SpringDataREST的web应用程序,并且遇到了 我还将存储库定义如下: public interface OrderRepository extends PagingAndSortingRepository<Order, Long>, QueryDslPredicateExecutor<Order> {} 如果我想模拟第一次绑定,我可以发布 curl -i -X G

我有一个启用了SpringDataREST的web应用程序,并且遇到了

我还将存储库定义如下:

public interface OrderRepository extends PagingAndSortingRepository<Order, Long>, 
                                        QueryDslPredicateExecutor<Order> {}
如果我想模拟第一次绑定,我可以发布

curl -i -X GET -H "Content-Type:application/json" 
http://localhost:8080/api/orders?status=READY
然后服务器端将请求参数转换为querydsl谓词
order.status=READY

我很难理解另外两个案子


要创建正确的谓词,请求参数应该是什么样子?

第二种类型的示例如下:

这类似于JPQL in子句。向我提供状态为“已付款”或“准备就绪”的所有订单

第三种类型的示例如下:


这类似于JPQL contains子句。给我所有订单,其行项目包含指定的对象(资源的唯一URI被指定为请求参数)。

2nd对我有效。第三个例子,我必须使用我得到转换异常,我想这可能取决于行项目是否作为Rest资源公开。如果是这样,那么您将使用URI样式而不是您的样式。您能快速尝试吗?行项目不会作为rest资源公开,因为Order是包含它们的聚合根。我只有OrderRepository作为Rest资源公开。我在另一个项目上测试了一对多关系,其中两个实体都作为Rest资源公开,我只使用ID。URI不起作用
The default binding is as follows:

Object on simple properties as eq.

Object on collection like properties as contains.

Collection on simple properties as in.
curl -i -X GET -H "Content-Type:application/json" 
http://localhost:8080/api/orders?status=READY